/*  Generated by CHR bootstrap compiler
    From: guard_entailment.chr
    Date: Wed Apr 17 11:41:12 2013

    DO NOT EDIT.  EDIT THE CHR FILE INSTEAD
*/

:- module(guard_entailment,
	  [ entails_guard/2,
	    simplify_guards/5
	  ]).
:- use_module(chr_runtime).
:- style_check(-(discontiguous)).
:- include(chr_op).
:- use_module(library(dialect/hprolog)).
:- use_module(builtins).
:- use_module(chr_compiler_errors).
entails_guard(A, B) :-
	copy_term_nat((A, B), (C, F)),
	term_variables(C, D),
	variables(D),
	sort(C, E),
	entails_guard2(E), !,
	test(F), !,
	cleanup.
entails_guard2([]).
entails_guard2([A|B]) :-
	known(A),
	entails_guard2(B).
simplify_guards(A, I, B, H, J) :-
	copy_term_nat((A, B), (C, F)),
	term_variables(C, D),
	variables(D),
	sort(C, E),
	entails_guard2(E), !,
	simplify(F, G),
	simplified(B, G, H, I, J), !,
	cleanup.
simplified([], [], [], A, A).
simplified([A|B], [keep|C], [A|D], E, F) :-
	simplified(B, C, D, E, F).
simplified([_|_], [fail|_], fail, A, A).
simplified([A|B], [true|L], [I|M], F, J) :-
	builtins:binds_b(A, C),
	term_variables(B, D),
	intersect_eq(C, D, E), !,
	(   E=[]
	->  term_variables(F, G),
	    intersect_eq(C, G, H), !,
	    (   H=[]
	    ->  I=true,
		J=K
	    ;   I=true,
		J= (A, K)
	    )
	;   I=A,
	    J=K
	),
	simplified(B, L, M, F, K).
simplify([], []).
simplify([A|D], [B|E]) :-
	(   \+ try(true, A)
	->  B=true
	;   builtins:negate_b(A, C),
	    (   \+ try(true, C)
	    ->  B=fail
	    ;   B=keep
	    )
	),
	known(A),
	simplify(D, E).
try(A, B) :-
	(   known(A)
	->  true
	;   chr_error(internal, 'Entailment Checker: try/2.\n', [])
	),
	(   test(B)
	->  fail
	;   true
	).
add_args_unif([], [], true).
add_args_unif([A|C], [B|D], (A=B, E)) :-
	add_args_unif(C, D, E).
add_args_nunif([], [], fail).
add_args_nunif([A|C], [B|D], (A\=B;E)) :-
	add_args_nunif(C, D, E).
add_args_nmatch([], [], fail).
add_args_nmatch([A|C], [B|D], (A\==B;E)) :-
	add_args_nmatch(C, D, E).
all_unique_vars(A, B) :-
	all_unique_vars(A, B, []).
all_unique_vars([], _, _).
all_unique_vars([A|D], B, C) :-
	var(A),
	\+ memberchk_eq(A, B),
	\+ memberchk_eq(A, C),
	all_unique_vars(D, [A|C]).
:- use_module(chr(chr_runtime)).
attach_variables___1([], _).
attach_variables___1([A|B1], D) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\1=:=1
	      ->  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)
	      ;   A1 is C\/1,
		  Z=v(A1, [D], F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(1,
		       [D],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	attach_variables___1(B1, D).
detach_variables___1([], _).
detach_variables___1([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, D, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\1=:=1
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -2,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   [],
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       F,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	detach_variables___1(B1, E).
'attach_known/1_1_$default___1'([], _).
'attach_known/1_1_$default___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\2=:=2
	      ->  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)
	      ;   A1 is C\/2,
		  Z=v(A1, D, [E], G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(2,
		       [],
		       [E],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$default___1'(B1, E).
'detach_known/1_1_$default___1'([], _).
'detach_known/1_1_$default___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, D, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\2=:=2
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -3,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   [],
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       F,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$default___1'(B1, E).
'attach_known/1_1_$special_;/2___2'([], _).
'attach_known/1_1_$special_;/2___2'([A|B1], F) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\4=:=4
	      ->  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)
	      ;   A1 is C\/4,
		  Z=v(A1, D, E, [F], H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(4,
		       [],
		       [],
		       [F],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_;/2___2'(B1, F).
'detach_known/1_1_$special_;/2___2'([], _).
'detach_known/1_1_$special_;/2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, D, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\4=:=4
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -5,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   [],
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       F,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_;/2___2'(B1, E).
'attach_known/1_1_$special_nonvar/1___1'([], _).
'attach_known/1_1_$special_nonvar/1___1'([A|B1], G) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\8=:=8
	      ->  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)
	      ;   A1 is C\/8,
		  Z=v(A1, D, E, F, [G], I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(8,
		       [],
		       [],
		       [],
		       [G],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_nonvar/1___1'(B1, G).
'detach_known/1_1_$special_nonvar/1___1'([], _).
'detach_known/1_1_$special_nonvar/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, D, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\8=:=8
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -9,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   [],
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       F,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_nonvar/1___1'(B1, E).
'attach_known/1_1_$special_var/1___1'([], _).
'attach_known/1_1_$special_var/1___1'([A|B1], H) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\16=:=16
	      ->  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)
	      ;   A1 is C\/16,
		  Z=v(A1, D, E, F, G, [H], J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(16,
		       [],
		       [],
		       [],
		       [],
		       [H],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_var/1___1'(B1, H).
'detach_known/1_1_$special_var/1___1'([], _).
'detach_known/1_1_$special_var/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, D, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\16=:=16
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -17,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   [],
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       F,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_var/1___1'(B1, E).
'attach_known/1_1_$special_atom/1___1'([], _).
'attach_known/1_1_$special_atom/1___1'([A|B1], I) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\32=:=32
	      ->  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)
	      ;   A1 is C\/32,
		  Z=v(A1, D, E, F, G, H, [I], K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(32,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [I],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_atom/1___1'(B1, I).
'detach_known/1_1_$special_atom/1___1'([], _).
'detach_known/1_1_$special_atom/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, D, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\32=:=32
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -33,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   [],
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       F,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_atom/1___1'(B1, E).
'attach_known/1_1_$special_atomic/1___1'([], _).
'attach_known/1_1_$special_atomic/1___1'([A|B1], J) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\64=:=64
	      ->  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)
	      ;   A1 is C\/64,
		  Z=v(A1, D, E, F, G, H, I, [J], L, M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(64,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [J],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_atomic/1___1'(B1, J).
'detach_known/1_1_$special_atomic/1___1'([], _).
'detach_known/1_1_$special_atomic/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, D, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\64=:=64
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -65,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   [],
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       F,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_atomic/1___1'(B1, E).
'attach_known/1_1_$special_compound/1___1'([], _).
'attach_known/1_1_$special_compound/1___1'([A|B1], K) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\128=:=128
	      ->  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)
	      ;   A1 is C\/128,
		  Z=v(A1, D, E, F, G, H, I, J, [K], M, N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(128,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [K],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_compound/1___1'(B1, K).
'detach_known/1_1_$special_compound/1___1'([], _).
'detach_known/1_1_$special_compound/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, D, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\128=:=128
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -129,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   [],
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       F,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_compound/1___1'(B1, E).
'attach_known/1_1_$special_ground/1___1'([], _).
'attach_known/1_1_$special_ground/1___1'([A|B1], L) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, M, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\256=:=256
	      ->  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)
	      ;   A1 is C\/256,
		  Z=v(A1, D, E, F, G, H, I, J, K, [L], N, O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(256,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [L],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_ground/1___1'(B1, L).
'detach_known/1_1_$special_ground/1___1'([], _).
'detach_known/1_1_$special_ground/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, D, P, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\256=:=256
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -257,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   [],
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       F,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_ground/1___1'(B1, E).
'attach_known/1_1_$special_integer/1___1'([], _).
'attach_known/1_1_$special_integer/1___1'([A|B1], M) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, N, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\512=:=512
	      ->  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)
	      ;   A1 is C\/512,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, [M], O, P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(512,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [M],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_integer/1___1'(B1, M).
'detach_known/1_1_$special_integer/1___1'([], _).
'detach_known/1_1_$special_integer/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, D, Q, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\512=:=512
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -513,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   [],
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       F,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_integer/1___1'(B1, E).
'attach_known/1_1_$special_float/1___1'([], _).
'attach_known/1_1_$special_float/1___1'([A|B1], N) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, O, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\1024=:=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)
	      ;   A1 is C\/1024,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, [N], P, Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(1024,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [N],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_float/1___1'(B1, N).
'detach_known/1_1_$special_float/1___1'([], _).
'detach_known/1_1_$special_float/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, D, R, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\1024=:=1024
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -1025,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   [],
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       F,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_float/1___1'(B1, E).
'attach_known/1_1_$special_number/1___1'([], _).
'attach_known/1_1_$special_number/1___1'([A|B1], O) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, P, Q, R, S, T, U, V, W, X, Y),
	      (   C/\2048=:=2048
	      ->  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)
	      ;   A1 is C\/2048,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, [O], Q, R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(2048,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [O],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_number/1___1'(B1, O).
'detach_known/1_1_$special_number/1___1'([], _).
'detach_known/1_1_$special_number/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, D, S, T, U, V, W, X, Y, Z, A1),
	    (   C/\2048=:=2048
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -2049,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   [],
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       F,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_number/1___1'(B1, E).
'attach_known/1_1_$special_=\\=/2___2'([], _).
'attach_known/1_1_$special_=\\=/2___2'([A|B1], P) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, Q, R, S, T, U, V, W, X, Y),
	      (   C/\4096=:=4096
	      ->  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)
	      ;   A1 is C\/4096,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, [P], R, S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(4096,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [P],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_=\\=/2___2'(B1, P).
'detach_known/1_1_$special_=\\=/2___2'([], _).
'detach_known/1_1_$special_=\\=/2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, D, T, U, V, W, X, Y, Z, A1),
	    (   C/\4096=:=4096
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -4097,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   [],
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       F,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_=\\=/2___2'(B1, E).
'attach_known/1_1_$special_\\+/1___1'([], _).
'attach_known/1_1_$special_\\+/1___1'([A|B1], Q) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, R, S, T, U, V, W, X, Y),
	      (   C/\8192=:=8192
	      ->  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)
	      ;   A1 is C\/8192,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, [Q], S, T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(8192,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [Q],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_\\+/1___1'(B1, Q).
'detach_known/1_1_$special_\\+/1___1'([], _).
'detach_known/1_1_$special_\\+/1___1'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, D, U, V, W, X, Y, Z, A1),
	    (   C/\8192=:=8192
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -8193,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   [],
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       F,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_\\+/1___1'(B1, E).
'attach_known/1_1_$special_functor/3___3'([], _).
'attach_known/1_1_$special_functor/3___3'([A|B1], R) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, S, T, U, V, W, X, Y),
	      (   C/\16384=:=16384
	      ->  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)
	      ;   A1 is C\/16384,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, [R], T, U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(16384,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [R],
		       [],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_functor/3___3'(B1, R).
'detach_known/1_1_$special_functor/3___3'([], _).
'detach_known/1_1_$special_functor/3___3'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, D, V, W, X, Y, Z, A1),
	    (   C/\16384=:=16384
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -16385,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   [],
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       F,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_functor/3___3'(B1, E).
'attach_known/1_1_$special_\\=/2___2'([], _).
'attach_known/1_1_$special_\\=/2___2'([A|B1], S) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V, W, X, Y),
	      (   C/\32768=:=32768
	      ->  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)
	      ;   A1 is C\/32768,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, [S], U, V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(32768,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [S],
		       [],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_\\=/2___2'(B1, S).
'detach_known/1_1_$special_\\=/2___2'([], _).
'detach_known/1_1_$special_\\=/2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, D, W, X, Y, Z, A1),
	    (   C/\32768=:=32768
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -32769,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   [],
				   W,
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       F,
			       W,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_\\=/2___2'(B1, E).
'attach_known/1_1_$special_=/2___2'([], _).
'attach_known/1_1_$special_=/2___2'([A|B1], T) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, U, V, W, X, Y),
	      (   C/\65536=:=65536
	      ->  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)
	      ;   A1 is C\/65536,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, [T], V, W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(65536,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [T],
		       [],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_=/2___2'(B1, T).
'detach_known/1_1_$special_=/2___2'([], _).
'detach_known/1_1_$special_=/2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, D, X, Y, Z, A1),
	    (   C/\65536=:=65536
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -65537,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   [],
				   X,
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       F,
			       X,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_=/2___2'(B1, E).
'attach_known/1_1_$special_\\==/2___2'([], _).
'attach_known/1_1_$special_\\==/2___2'([A|B1], U) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, V, W, X, Y),
	      (   C/\131072=:=131072
	      ->  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)
	      ;   A1 is C\/131072,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, [U], W, X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(131072,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [U],
		       [],
		       [],
		       []))
	),
	'attach_known/1_1_$special_\\==/2___2'(B1, U).
'detach_known/1_1_$special_\\==/2___2'([], _).
'detach_known/1_1_$special_\\==/2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, D, Y, Z, A1),
	    (   C/\131072=:=131072
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -131073,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   [],
				   Y,
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       F,
			       Y,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_\\==/2___2'(B1, E).
'attach_known/1_1_$special_==/2___2'([], _).
'attach_known/1_1_$special_==/2___2'([A|B1], V) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, W, X, Y),
	      (   C/\262144=:=262144
	      ->  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)
	      ;   A1 is C\/262144,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, [V], X, Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(262144,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [V],
		       [],
		       []))
	),
	'attach_known/1_1_$special_==/2___2'(B1, V).
'detach_known/1_1_$special_==/2___2'([], _).
'detach_known/1_1_$special_==/2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, D, Z, A1),
	    (   C/\262144=:=262144
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -262145,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   [],
				   Z,
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       F,
			       Z,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_==/2___2'(B1, E).
'attach_known/1_1_$special_=</2___2'([], _).
'attach_known/1_1_$special_=</2___2'([A|B1], W) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y),
	      (   C/\524288=:=524288
	      ->  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)
	      ;   A1 is C\/524288,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, [W], Y)
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(524288,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [W],
		       []))
	),
	'attach_known/1_1_$special_=</2___2'(B1, W).
'detach_known/1_1_$special_=</2___2'([], _).
'detach_known/1_1_$special_=</2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, D, A1),
	    (   C/\524288=:=524288
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -524289,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   [],
				   A1))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       F,
			       A1))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_=</2___2'(B1, E).
'attach_known/1_1_$special_=:=/2___2'([], _).
'attach_known/1_1_$special_=:=/2___2'([A|B1], X) :-
	(   get_attr(A, guard_entailment, B)
	->  ( B=v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, Y),
	      (   C/\1048576=:=1048576
	      ->  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])
	      ;   A1 is C\/1048576,
		  Z=v(A1, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, [X])
	      )
	    ),
	    put_attr(A, guard_entailment, Z)
	;   put_attr(A,
		     guard_entailment,
		     v(1048576,
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [],
		       [X]))
	),
	'attach_known/1_1_$special_=:=/2___2'(B1, X).
'detach_known/1_1_$special_=:=/2___2'([], _).
'detach_known/1_1_$special_=:=/2___2'([A|B1], E) :-
	(   get_attr(A, guard_entailment, B)
	->  B=v(C, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, A1, D),
	    (   C/\1048576=:=1048576
	    ->  'chr sbag_del_element'(D, E, F),
		(   F==[]
		->  G is C/\ -1048577,
		    (   G==0
		    ->  del_attr(A, guard_entailment)
		    ;   put_attr(A,
				 guard_entailment,
				 v(G,
				   H,
				   I,
				   J,
				   K,
				   L,
				   M,
				   N,
				   O,
				   P,
				   Q,
				   R,
				   S,
				   T,
				   U,
				   V,
				   W,
				   X,
				   Y,
				   Z,
				   A1,
				   []))
		    )
		;   put_attr(A,
			     guard_entailment,
			     v(C,
			       H,
			       I,
			       J,
			       K,
			       L,
			       M,
			       N,
			       O,
			       P,
			       Q,
			       R,
			       S,
			       T,
			       U,
			       V,
			       W,
			       X,
			       Y,
			       Z,
			       A1,
			       F))
		)
	    ;   true
	    )
	;   true
	),
	'detach_known/1_1_$special_=:=/2___2'(B1, E).
attach_increment([], _).
attach_increment([A|M3], B) :-
	'chr not_locked'(A),
	(   get_attr(A, guard_entailment, C)
	->  ( B=v(O2, E, H, K, N, Q, T, W, Z, C1, F1, I1, L1, O1, R1, U1, X1, A2, D2, G2, J2, M2),
	      C=v(P2, D, G, J, M, P, S, V, Y, B1, E1, H1, K1, N1, Q1, T1, W1, Z1, C2, F2, I2, L2),
	      ( ( sort(D, F),
		  'chr merge_attributes'(E, F, R2)
		),
		( sort(G, I),
		  'chr merge_attributes'(H, I, S2)
		),
		( sort(J, L),
		  'chr merge_attributes'(K, L, T2)
		),
		( sort(M, O),
		  'chr merge_attributes'(N, O, U2)
		),
		( sort(P, R),
		  'chr merge_attributes'(Q, R, V2)
		),
		( sort(S, U),
		  'chr merge_attributes'(T, U, W2)
		),
		( sort(V, X),
		  'chr merge_attributes'(W, X, X2)
		),
		( sort(Y, A1),
		  'chr merge_attributes'(Z, A1, Y2)
		),
		( sort(B1, D1),
		  'chr merge_attributes'(C1, D1, Z2)
		),
		( sort(E1, G1),
		  'chr merge_attributes'(F1, G1, A3)
		),
		( sort(H1, J1),
		  'chr merge_attributes'(I1, J1, B3)
		),
		( sort(K1, M1),
		  'chr merge_attributes'(L1, M1, C3)
		),
		( sort(N1, P1),
		  'chr merge_attributes'(O1, P1, D3)
		),
		( sort(Q1, S1),
		  'chr merge_attributes'(R1, S1, E3)
		),
		( sort(T1, V1),
		  'chr merge_attributes'(U1, V1, F3)
		),
		( sort(W1, Y1),
		  'chr merge_attributes'(X1, Y1, G3)
		),
		( sort(Z1, B2),
		  'chr merge_attributes'(A2, B2, H3)
		),
		( sort(C2, E2),
		  'chr merge_attributes'(D2, E2, I3)
		),
		( sort(F2, H2),
		  'chr merge_attributes'(G2, H2, J3)
		),
		( sort(I2, K2),
		  'chr merge_attributes'(J2, K2, K3)
		),
		sort(L2, N2),
		'chr merge_attributes'(M2, N2, L3)
	      ),
	      Q2 is O2\/P2
	    ),
	    put_attr(A,
		     guard_entailment,
		     v(Q2,
		       R2,
		       S2,
		       T2,
		       U2,
		       V2,
		       W2,
		       X2,
		       Y2,
		       Z2,
		       A3,
		       B3,
		       C3,
		       D3,
		       E3,
		       F3,
		       G3,
		       H3,
		       I3,
		       J3,
		       K3,
		       L3))
	;   put_attr(A, guard_entailment, B)
	),
	attach_increment(M3, B).
attribute_goals(_, A, A).
attr_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) :-
	sort(A, Y),
	sort(B, B1),
	sort(C, E1),
	sort(D, H1),
	sort(E, K1),
	sort(F, N1),
	sort(G, Q1),
	sort(H, T1),
	sort(I, W1),
	sort(J, Z1),
	sort(K, C2),
	sort(L, F2),
	sort(M, I2),
	sort(N, L2),
	sort(O, O2),
	sort(P, R2),
	sort(Q, U2),
	sort(R, X2),
	sort(S, A3),
	sort(T, D3),
	sort(U, G3),
	(   var(V)
	->  (   get_attr(V, guard_entailment, W)
	    ->  ( W=v(J3, X, A1, D1, G1, J1, M1, P1, S1, V1, Y1, B2, E2, H2, K2, N2, Q2, T2, W2, Z2, C3, F3),
		  ( ( sort(X, Z),
		      'chr merge_attributes'(Y, Z, L3)
		    ),
		    ( sort(A1, C1),
		      'chr merge_attributes'(B1, C1, M3)
		    ),
		    ( sort(D1, F1),
		      'chr merge_attributes'(E1, F1, N3)
		    ),
		    ( sort(G1, I1),
		      'chr merge_attributes'(H1, I1, O3)
		    ),
		    ( sort(J1, L1),
		      'chr merge_attributes'(K1, L1, P3)
		    ),
		    ( sort(M1, O1),
		      'chr merge_attributes'(N1, O1, Q3)
		    ),
		    ( sort(P1, R1),
		      'chr merge_attributes'(Q1, R1, R3)
		    ),
		    ( sort(S1, U1),
		      'chr merge_attributes'(T1, U1, S3)
		    ),
		    ( sort(V1, X1),
		      'chr merge_attributes'(W1, X1, T3)
		    ),
		    ( sort(Y1, A2),
		      'chr merge_attributes'(Z1, A2, U3)
		    ),
		    ( sort(B2, D2),
		      'chr merge_attributes'(C2, D2, V3)
		    ),
		    ( sort(E2, G2),
		      'chr merge_attributes'(F2, G2, W3)
		    ),
		    ( sort(H2, J2),
		      'chr merge_attributes'(I2, J2, X3)
		    ),
		    ( sort(K2, M2),
		      'chr merge_attributes'(L2, M2, Y3)
		    ),
		    ( sort(N2, P2),
		      'chr merge_attributes'(O2, P2, Z3)
		    ),
		    ( sort(Q2, S2),
		      'chr merge_attributes'(R2, S2, A4)
		    ),
		    ( sort(T2, V2),
		      'chr merge_attributes'(U2, V2, B4)
		    ),
		    ( sort(W2, Y2),
		      'chr merge_attributes'(X2, Y2, C4)
		    ),
		    ( sort(Z2, B3),
		      'chr merge_attributes'(A3, B3, D4)
		    ),
		    ( sort(C3, E3),
		      'chr merge_attributes'(D3, E3, E4)
		    ),
		    sort(F3, H3),
		    'chr merge_attributes'(G3, H3, F4)
		  ),
		  K3 is I3\/J3
		),
		put_attr(V,
			 guard_entailment,
			 v(K3,
			   L3,
			   M3,
			   N3,
			   O3,
			   P3,
			   Q3,
			   R3,
			   S3,
			   T3,
			   U3,
			   V3,
			   W3,
			   X3,
			   Y3,
			   Z3,
			   A4,
			   B4,
			   C4,
			   D4,
			   E4,
			   F4)),
		'$run_suspensions_variables___1'(Y),
		'$run_suspensions_known/1_1_$default___1'(B1),
		'$run_suspensions_known/1_1_$special_;/2___2'(N3),
		'$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
		'$run_suspensions_known/1_1_$special_var/1___1'(K1),
		'$run_suspensions_known/1_1_$special_atom/1___1'(N1),
		'$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
		'$run_suspensions_known/1_1_$special_compound/1___1'(T1),
		'$run_suspensions_known/1_1_$special_ground/1___1'(W1),
		'$run_suspensions_known/1_1_$special_integer/1___1'(U3),
		'$run_suspensions_known/1_1_$special_float/1___1'(V3),
		'$run_suspensions_known/1_1_$special_number/1___1'(W3),
		'$run_suspensions_known/1_1_$special_=\\=/2___2'(X3),
		'$run_suspensions_known/1_1_$special_\\+/1___1'(Y3),
		'$run_suspensions_known/1_1_$special_functor/3___3'(Z3),
		'$run_suspensions_known/1_1_$special_\\=/2___2'(A4),
		'$run_suspensions_known/1_1_$special_=/2___2'(B4),
		'$run_suspensions_known/1_1_$special_\\==/2___2'(C4),
		'$run_suspensions_known/1_1_$special_==/2___2'(D4),
		'$run_suspensions_known/1_1_$special_=</2___2'(E4),
		'$run_suspensions_known/1_1_$special_=:=/2___2'(F4)
	    ;   put_attr(V,
			 guard_entailment,
			 v(I3,
			   Y,
			   B1,
			   E1,
			   H1,
			   K1,
			   N1,
			   Q1,
			   T1,
			   W1,
			   Z1,
			   C2,
			   F2,
			   I2,
			   L2,
			   O2,
			   R2,
			   U2,
			   X2,
			   A3,
			   D3,
			   G3)),
		'$run_suspensions_variables___1'(Y),
		'$run_suspensions_known/1_1_$default___1'(B1),
		'$run_suspensions_known/1_1_$special_;/2___2'(E1),
		'$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
		'$run_suspensions_known/1_1_$special_var/1___1'(K1),
		'$run_suspensions_known/1_1_$special_atom/1___1'(N1),
		'$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
		'$run_suspensions_known/1_1_$special_compound/1___1'(T1),
		'$run_suspensions_known/1_1_$special_ground/1___1'(W1),
		'$run_suspensions_known/1_1_$special_integer/1___1'(Z1),
		'$run_suspensions_known/1_1_$special_float/1___1'(C2),
		'$run_suspensions_known/1_1_$special_number/1___1'(F2),
		'$run_suspensions_known/1_1_$special_=\\=/2___2'(I2),
		'$run_suspensions_known/1_1_$special_\\+/1___1'(L2),
		'$run_suspensions_known/1_1_$special_functor/3___3'(O2),
		'$run_suspensions_known/1_1_$special_\\=/2___2'(R2),
		'$run_suspensions_known/1_1_$special_=/2___2'(U2),
		'$run_suspensions_known/1_1_$special_\\==/2___2'(X2),
		'$run_suspensions_known/1_1_$special_==/2___2'(A3),
		'$run_suspensions_known/1_1_$special_=</2___2'(D3),
		'$run_suspensions_known/1_1_$special_=:=/2___2'(G3)
	    )
	;   (   compound(V)
	    ->  term_variables(V, G4),
		attach_increment(G4,
				 v(I3,
				   Y,
				   B1,
				   E1,
				   H1,
				   K1,
				   N1,
				   Q1,
				   T1,
				   W1,
				   Z1,
				   C2,
				   F2,
				   I2,
				   L2,
				   O2,
				   R2,
				   U2,
				   X2,
				   A3,
				   D3,
				   G3))
	    ;   true
	    ),
	    '$run_suspensions_variables___1'(Y),
	    '$run_suspensions_known/1_1_$default___1'(B1),
	    '$run_suspensions_known/1_1_$special_;/2___2'(E1),
	    '$run_suspensions_known/1_1_$special_nonvar/1___1'(H1),
	    '$run_suspensions_known/1_1_$special_var/1___1'(K1),
	    '$run_suspensions_known/1_1_$special_atom/1___1'(N1),
	    '$run_suspensions_known/1_1_$special_atomic/1___1'(Q1),
	    '$run_suspensions_known/1_1_$special_compound/1___1'(T1),
	    '$run_suspensions_known/1_1_$special_ground/1___1'(W1),
	    '$run_suspensions_known/1_1_$special_integer/1___1'(Z1),
	    '$run_suspensions_known/1_1_$special_float/1___1'(C2),
	    '$run_suspensions_known/1_1_$special_number/1___1'(F2),
	    '$run_suspensions_known/1_1_$special_=\\=/2___2'(I2),
	    '$run_suspensions_known/1_1_$special_\\+/1___1'(L2),
	    '$run_suspensions_known/1_1_$special_functor/3___3'(O2),
	    '$run_suspensions_known/1_1_$special_\\=/2___2'(R2),
	    '$run_suspensions_known/1_1_$special_=/2___2'(U2),
	    '$run_suspensions_known/1_1_$special_\\==/2___2'(X2),
	    '$run_suspensions_known/1_1_$special_==/2___2'(A3),
	    '$run_suspensions_known/1_1_$special_=</2___2'(D3),
	    '$run_suspensions_known/1_1_$special_=:=/2___2'(G3)
	).
'$novel_production'(A, B) :-
	arg(3, A, C),
	(   hprolog:get_ds(B, C, _)
	->  fail
	;   true
	).
'$extend_history'(A, B) :-
	arg(3, A, C),
	hprolog:put_ds(B, C, x, D),
	setarg(3, A, D).
'$run_suspensions_variables___1'([]).
'$run_suspensions_variables___1'([A|D]) :-
	A=suspension(_, B, _, C),
	(   B==active
	->  setarg(2, A, triggered),
	    variables___1__0(C, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_variables___1'(D).
'$run_suspensions_known/1_1_$default___1'([]).
'$run_suspensions_known/1_1_$default___1'([A|F]) :-
	A=suspension(_, B, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(3, A, D)
	    ),
	    'known/1_1_$default___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$default___1'(F).
'$run_suspensions_known/1_1_$special_;/2___2'([]).
'$run_suspensions_known/1_1_$special_;/2___2'([A|G]) :-
	A=suspension(_, B, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(3, A, D)
	    ),
	    'known/1_1_$special_;/2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_;/2___2'(G).
'$run_suspensions_known/1_1_$special_nonvar/1___1'([]).
'$run_suspensions_known/1_1_$special_nonvar/1___1'([A|F]) :-
	A=suspension(_, B, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(3, A, D)
	    ),
	    'known/1_1_$special_nonvar/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_nonvar/1___1'(F).
'$run_suspensions_known/1_1_$special_var/1___1'([]).
'$run_suspensions_known/1_1_$special_var/1___1'([A|F]) :-
	A=suspension(_, B, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(3, A, D)
	    ),
	    'known/1_1_$special_var/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_var/1___1'(F).
'$run_suspensions_known/1_1_$special_atom/1___1'([]).
'$run_suspensions_known/1_1_$special_atom/1___1'([A|F]) :-
	A=suspension(_, B, _, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_atom/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_atom/1___1'(F).
'$run_suspensions_known/1_1_$special_atomic/1___1'([]).
'$run_suspensions_known/1_1_$special_atomic/1___1'([A|F]) :-
	A=suspension(_, B, _, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_atomic/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_atomic/1___1'(F).
'$run_suspensions_known/1_1_$special_compound/1___1'([]).
'$run_suspensions_known/1_1_$special_compound/1___1'([A|F]) :-
	A=suspension(_, B, _, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_compound/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_compound/1___1'(F).
'$run_suspensions_known/1_1_$special_ground/1___1'([]).
'$run_suspensions_known/1_1_$special_ground/1___1'([A|F]) :-
	A=suspension(_, B, _, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_ground/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_ground/1___1'(F).
'$run_suspensions_known/1_1_$special_integer/1___1'([]).
'$run_suspensions_known/1_1_$special_integer/1___1'([A|F]) :-
	A=suspension(_, B, _, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_integer/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_integer/1___1'(F).
'$run_suspensions_known/1_1_$special_float/1___1'([]).
'$run_suspensions_known/1_1_$special_float/1___1'([A|F]) :-
	A=suspension(_, B, _, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_float/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_float/1___1'(F).
'$run_suspensions_known/1_1_$special_number/1___1'([]).
'$run_suspensions_known/1_1_$special_number/1___1'([A|F]) :-
	A=suspension(_, B, _, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_number/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_number/1___1'(F).
'$run_suspensions_known/1_1_$special_=\\=/2___2'([]).
'$run_suspensions_known/1_1_$special_=\\=/2___2'([A|G]) :-
	A=suspension(_, B, _, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_=\\=/2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_=\\=/2___2'(G).
'$run_suspensions_known/1_1_$special_\\+/1___1'([]).
'$run_suspensions_known/1_1_$special_\\+/1___1'([A|F]) :-
	A=suspension(_, B, C, _, E),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(3, A, D)
	    ),
	    'known/1_1_$special_\\+/1___1__0'(E, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_\\+/1___1'(F).
'$run_suspensions_known/1_1_$special_functor/3___3'([]).
'$run_suspensions_known/1_1_$special_functor/3___3'([A|H]) :-
	A=suspension(_, B, C, _, E, F, G),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(3, A, D)
	    ),
	    'known/1_1_$special_functor/3___3__0'(E, F, G, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_functor/3___3'(H).
'$run_suspensions_known/1_1_$special_\\=/2___2'([]).
'$run_suspensions_known/1_1_$special_\\=/2___2'([A|G]) :-
	A=suspension(_, B, _, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_\\=/2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_\\=/2___2'(G).
'$run_suspensions_known/1_1_$special_=/2___2'([]).
'$run_suspensions_known/1_1_$special_=/2___2'([A|G]) :-
	A=suspension(_, B, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(3, A, D)
	    ),
	    'known/1_1_$special_=/2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_=/2___2'(G).
'$run_suspensions_known/1_1_$special_\\==/2___2'([]).
'$run_suspensions_known/1_1_$special_\\==/2___2'([A|G]) :-
	A=suspension(_, B, _, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_\\==/2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_\\==/2___2'(G).
'$run_suspensions_known/1_1_$special_==/2___2'([]).
'$run_suspensions_known/1_1_$special_==/2___2'([A|G]) :-
	A=suspension(_, B, _, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_==/2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_==/2___2'(G).
'$run_suspensions_known/1_1_$special_=</2___2'([]).
'$run_suspensions_known/1_1_$special_=</2___2'([A|G]) :-
	A=suspension(_, B, _, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_=</2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_=</2___2'(G).
'$run_suspensions_known/1_1_$special_=:=/2___2'([]).
'$run_suspensions_known/1_1_$special_=:=/2___2'([A|G]) :-
	A=suspension(_, B, _, C, _, E, F),
	(   B==active
	->  setarg(2, A, triggered),
	    ( D is C+1,
	      setarg(4, A, D)
	    ),
	    'known/1_1_$special_=:=/2___2__0'(E, F, A),
	    (   B==triggered
	    ->  setarg(2, A, active)
	    ;   true
	    )
	;   true
	),
	'$run_suspensions_known/1_1_$special_=:=/2___2'(G).
'$enumerate_constraints'(A) :-
	(   nonvar(A)
	->  functor(A, B, _),
	    '$enumerate_constraints'(B, A)
	;   '$enumerate_constraints'(_, A)
	).
'$enumerate_constraints'(variables, C) :-
	nb_getval('$chr_store_global_list_guard_entailment____variables___1', A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, D),
	C=variables(D).
'$enumerate_constraints'('known/1_1_$default', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, D),
	C='known/1_1_$default'(D).
'$enumerate_constraints'('known/1_1_$special_;/2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, D, E),
	C='known/1_1_$special_;/2'(D, E).
'$enumerate_constraints'('known/1_1_$special_nonvar/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, D),
	C='known/1_1_$special_nonvar/1'(D).
'$enumerate_constraints'('known/1_1_$special_var/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, D),
	C='known/1_1_$special_var/1'(D).
'$enumerate_constraints'('known/1_1_$special_atom/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D),
	C='known/1_1_$special_atom/1'(D).
'$enumerate_constraints'('known/1_1_$special_atomic/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D),
	C='known/1_1_$special_atomic/1'(D).
'$enumerate_constraints'('known/1_1_$special_compound/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D),
	C='known/1_1_$special_compound/1'(D).
'$enumerate_constraints'('known/1_1_$special_ground/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D),
	C='known/1_1_$special_ground/1'(D).
'$enumerate_constraints'('known/1_1_$special_integer/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D),
	C='known/1_1_$special_integer/1'(D).
'$enumerate_constraints'('known/1_1_$special_float/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D),
	C='known/1_1_$special_float/1'(D).
'$enumerate_constraints'('known/1_1_$special_number/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D),
	C='known/1_1_$special_number/1'(D).
'$enumerate_constraints'('known/1_1_$special_=\\=/2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D, E),
	C='known/1_1_$special_=\\=/2'(D, E).
'$enumerate_constraints'('known/1_1_$special_\\+/1', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, D),
	C='known/1_1_$special_\\+/1'(D).
'$enumerate_constraints'('known/1_1_$special_functor/3', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, D, E, F),
	C='known/1_1_$special_functor/3'(D, E, F).
'$enumerate_constraints'('known/1_1_$special_\\=/2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D, E),
	C='known/1_1_$special_\\=/2'(D, E).
'$enumerate_constraints'('known/1_1_$special_=/2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, D, E),
	C='known/1_1_$special_=/2'(D, E).
'$enumerate_constraints'('known/1_1_$special_\\==/2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D, E),
	C='known/1_1_$special_\\==/2'(D, E).
'$enumerate_constraints'('known/1_1_$special_==/2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D, E),
	C='known/1_1_$special_==/2'(D, E).
'$enumerate_constraints'('known/1_1_$special_=</2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D, E),
	C='known/1_1_$special_=</2'(D, E).
'$enumerate_constraints'('known/1_1_$special_=:=/2', C) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _, _, _, D, E),
	C='known/1_1_$special_=:=/2'(D, E).
'$enumerate_constraints'('known/1_1_$special_fail/0', C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, _, _),
	C='known/1_1_$special_fail/0'.
'$chr_initialization' :-
	nb_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		  []),
	nb_setval('$chr_store_global_list_guard_entailment____variables___1',
		  []).
:- (initialization'$chr_initialization').
:- (dynamic user:exception/3).
:- (multifile user:exception/3).
user:exception(undefined_global_variable, A, retry) :-
	'$chr_prolog_global_variable'(A),
	'$chr_initialization'.
'$chr_prolog_global_variable'('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____known/1_1_$default___1').
'$chr_prolog_global_variable'('$chr_store_global_list_guard_entailment____variables___1').
known(A) :-
	nonvar(A),
	(   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   A= (B;C), !,
												    'known/1_1_$special_;/2'(B,
															     C)
												;   A=nonvar(D), !,
												    'known/1_1_$special_nonvar/1'(D)
												)
											    ;   A=var(E), !,
												'known/1_1_$special_var/1'(E)
											    )
											;   A=atom(F), !,
											    'known/1_1_$special_atom/1'(F)
											)
										    ;   A=atomic(G), !,
											'known/1_1_$special_atomic/1'(G)
										    )
										;   A=compound(H), !,
										    'known/1_1_$special_compound/1'(H)
										)
									    ;   A=ground(I), !,
										'known/1_1_$special_ground/1'(I)
									    )
									;   A=integer(J), !,
									    'known/1_1_$special_integer/1'(J)
									)
								    ;   A=float(K), !,
									'known/1_1_$special_float/1'(K)
								    )
								;   A=number(L), !,
								    'known/1_1_$special_number/1'(L)
								)
							    ;   A= (M=\=N), !,
								'known/1_1_$special_=\\=/2'(M,
											    N)
							    )
							;   A= (\+O), !,
							    'known/1_1_$special_\\+/1'(O)
							)
						    ;   A=functor(P, Q, R), !,
							'known/1_1_$special_functor/3'(P,
										       Q,
										       R)
						    )
						;   A= (S\=T), !,
						    'known/1_1_$special_\\=/2'(S,
									       T)
						)
					    ;   A= (U=V), !,
						'known/1_1_$special_=/2'(U, V)
					    )
					;   A= (W, X), !,
					    'known/1_1_$special_,/2'(W, X)
					)
				    ;   A= (Y\==Z), !,
					'known/1_1_$special_\\==/2'(Y, Z)
				    )
				;   A= (A1==B1), !,
				    'known/1_1_$special_==/2'(A1, B1)
				)
			    ;   A= (C1 is D1), !,
				'known/1_1_$special_is/2'(C1, D1)
			    )
			;   A= (E1<F1), !,
			    'known/1_1_$special_</2'(E1, F1)
			)
		    ;   A= (G1>=H1), !,
			'known/1_1_$special_>=/2'(G1, H1)
		    )
		;   A= (I1>J1), !,
		    'known/1_1_$special_>/2'(I1, J1)
		)
	    ;   A= (K1=<L1), !,
		'known/1_1_$special_=</2'(K1, L1)
	    )
	;   A= (M1=:=N1), !,
	    'known/1_1_$special_=:=/2'(M1, N1)
	).
known(A) :-
	A==fail, !,
	'known/1_1_$special_fail/0'.
known(A) :-
	'known/1_1_$default'(A).
test(A) :-
	nonvar(A),
	(   (   (   (   (   (   (   A= (B, C), !,
				    'test/1_1_$special_,/2'(B, C)
				;   A= (\+D), !,
				    'test/1_1_$special_\\+/1'(D)
				)
			    ;   A=integer(E), !,
				'test/1_1_$special_integer/1'(E)
			    )
			;   A=float(F), !,
			    'test/1_1_$special_float/1'(F)
			)
		    ;   A=number(G), !,
			'test/1_1_$special_number/1'(G)
		    )
		;   A=ground(H), !,
		    'test/1_1_$special_ground/1'(H)
		)
	    ;   A= (I=:=J), !,
		'test/1_1_$special_=:=/2'(I, J)
	    )
	;   A= (K==L), !,
	    'test/1_1_$special_==/2'(K, L)
	).
test(A) :-
	A==true, !,
	'test/1_1_$special_true/0'.
test(A) :-
	nonvar(A),
	(   (   (   (   (   (   (   (   (   A=functor(B, C, D), !,
					    'test/1_1_$special_functor/3'(B,
									  C,
									  D)
					;   A= (E=F), !,
					    'test/1_1_$special_=/2'(E, F)
					)
				    ;   A= (G;H), !,
					'test/1_1_$special_;/2'(G, H)
				    )
				;   A= (I is J), !,
				    'test/1_1_$special_is/2'(I, J)
				)
			    ;   A= (K<L), !,
				'test/1_1_$special_</2'(K, L)
			    )
			;   A= (M>=N), !,
			    'test/1_1_$special_>=/2'(M, N)
			)
		    ;   A= (O>P), !,
			'test/1_1_$special_>/2'(O, P)
		    )
		;   A= (Q=\=R), !,
		    'test/1_1_$special_=\\=/2'(Q, R)
		)
	    ;   A= (S=<T), !,
		'test/1_1_$special_=</2'(S, T)
	    )
	;   A= (U\==V), !,
	    'test/1_1_$special_\\==/2'(U, V)
	).
test(A) :-
	'test/1_1_$default'(A).
cleanup :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A), !,
	cleanup___0__0__0__1(A).
cleanup___0__0__0__1([]) :-
	cleanup___0__1.
cleanup___0__0__0__1([A|I]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(4, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(4, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(4, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(H, A)
	    ),
	    cleanup___0__0__0__1(I)
	;   cleanup___0__0__0__1(I)
	).
cleanup :-
	cleanup___0__1.
cleanup___0__1 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		  A), !,
	cleanup___0__1__0__2(A).
cleanup___0__1__0__2([]) :-
	cleanup___0__2.
cleanup___0__1__0__2([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_nonvar/1___1'(G, A)
	    ),
	    cleanup___0__1__0__2(H)
	;   cleanup___0__1__0__2(H)
	).
cleanup___0__1 :-
	cleanup___0__2.
cleanup___0__2 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		  A), !,
	cleanup___0__2__0__3(A).
cleanup___0__2__0__3([]) :-
	cleanup___0__3.
cleanup___0__2__0__3([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_var/1___1'(G, A)
	    ),
	    cleanup___0__2__0__3(H)
	;   cleanup___0__2__0__3(H)
	).
cleanup___0__2 :-
	cleanup___0__3.
cleanup___0__3 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
		  A), !,
	cleanup___0__3__0__4(A).
cleanup___0__3__0__4([]) :-
	cleanup___0__4.
cleanup___0__3__0__4([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_atom/1___1'(G, A)
	    ),
	    cleanup___0__3__0__4(H)
	;   cleanup___0__3__0__4(H)
	).
cleanup___0__3 :-
	cleanup___0__4.
cleanup___0__4 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
		  A), !,
	cleanup___0__4__0__5(A).
cleanup___0__4__0__5([]) :-
	cleanup___0__5.
cleanup___0__4__0__5([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_atomic/1___1'(G, A)
	    ),
	    cleanup___0__4__0__5(H)
	;   cleanup___0__4__0__5(H)
	).
cleanup___0__4 :-
	cleanup___0__5.
cleanup___0__5 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
		  A), !,
	cleanup___0__5__0__6(A).
cleanup___0__5__0__6([]) :-
	cleanup___0__6.
cleanup___0__5__0__6([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_compound/1___1'(G, A)
	    ),
	    cleanup___0__5__0__6(H)
	;   cleanup___0__5__0__6(H)
	).
cleanup___0__5 :-
	cleanup___0__6.
cleanup___0__6 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
		  A), !,
	cleanup___0__6__0__7(A).
cleanup___0__6__0__7([]) :-
	cleanup___0__7.
cleanup___0__6__0__7([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_ground/1___1'(G, A)
	    ),
	    cleanup___0__6__0__7(H)
	;   cleanup___0__6__0__7(H)
	).
cleanup___0__6 :-
	cleanup___0__7.
cleanup___0__7 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
		  A), !,
	cleanup___0__7__0__8(A).
cleanup___0__7__0__8([]) :-
	cleanup___0__8.
cleanup___0__7__0__8([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_integer/1___1'(G, A)
	    ),
	    cleanup___0__7__0__8(H)
	;   cleanup___0__7__0__8(H)
	).
cleanup___0__7 :-
	cleanup___0__8.
cleanup___0__8 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
		  A), !,
	cleanup___0__8__0__9(A).
cleanup___0__8__0__9([]) :-
	cleanup___0__9.
cleanup___0__8__0__9([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_float/1___1'(G, A)
	    ),
	    cleanup___0__8__0__9(H)
	;   cleanup___0__8__0__9(H)
	).
cleanup___0__8 :-
	cleanup___0__9.
cleanup___0__9 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
		  A), !,
	cleanup___0__9__0__10(A).
cleanup___0__9__0__10([]) :-
	cleanup___0__10.
cleanup___0__9__0__10([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_number/1___1'(G, A)
	    ),
	    cleanup___0__9__0__10(H)
	;   cleanup___0__9__0__10(H)
	).
cleanup___0__9 :-
	cleanup___0__10.
cleanup___0__10 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		  A), !,
	cleanup___0__10__0__11(A).
cleanup___0__10__0__11([]) :-
	cleanup___0__11.
cleanup___0__10__0__11([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=\\=/2___2'(H, A)
	    ),
	    cleanup___0__10__0__11(I)
	;   cleanup___0__10__0__11(I)
	).
cleanup___0__10 :-
	cleanup___0__11.
cleanup___0__11 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		  A), !,
	cleanup___0__11__0__12(A).
cleanup___0__11__0__12([]) :-
	cleanup___0__12.
cleanup___0__11__0__12([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_\\+/1___1'(G, A)
	    ),
	    cleanup___0__11__0__12(H)
	;   cleanup___0__11__0__12(H)
	).
cleanup___0__11 :-
	cleanup___0__12.
cleanup___0__12 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		  A), !,
	cleanup___0__12__0__13(A).
cleanup___0__12__0__13([]) :-
	cleanup___0__13.
cleanup___0__12__0__13([A|J]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, B, C, D),
	      setarg(2, A, removed),
	      term_variables(term(B, C, D), I),
	      ( arg(4, A, E),
		(   var(E)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			      F),
		    F=[_|G],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			     G),
		    (   G=[H|_]
		    ->  setarg(4, H, _)
		    ;   true
		    )
		;   E=[_, _|G],
		    setarg(2, E, G),
		    (   G=[H|_]
		    ->  setarg(4, H, E)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_functor/3___3'(I, A)
	    ),
	    cleanup___0__12__0__13(J)
	;   cleanup___0__12__0__13(J)
	).
cleanup___0__12 :-
	cleanup___0__13.
cleanup___0__13 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
		  A), !,
	cleanup___0__13__0__14(A).
cleanup___0__13__0__14([]) :-
	cleanup___0__14.
cleanup___0__13__0__14([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_\\=/2___2'(H, A)
	    ),
	    cleanup___0__13__0__14(I)
	;   cleanup___0__13__0__14(I)
	).
cleanup___0__13 :-
	cleanup___0__14.
cleanup___0__14 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
		  A), !,
	cleanup___0__14__0__15(A).
cleanup___0__14__0__15([]) :-
	cleanup___0__15.
cleanup___0__14__0__15([A|I]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(4, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(4, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(4, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=/2___2'(H, A)
	    ),
	    cleanup___0__14__0__15(I)
	;   cleanup___0__14__0__15(I)
	).
cleanup___0__14 :-
	cleanup___0__15.
cleanup___0__15 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		  A), !,
	cleanup___0__15__0__17(A).
cleanup___0__15__0__17([]) :-
	cleanup___0__16.
cleanup___0__15__0__17([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_\\==/2___2'(H, A)
	    ),
	    cleanup___0__15__0__17(I)
	;   cleanup___0__15__0__17(I)
	).
cleanup___0__15 :-
	cleanup___0__16.
cleanup___0__16 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		  A), !,
	cleanup___0__16__0__18(A).
cleanup___0__16__0__18([]) :-
	cleanup___0__17.
cleanup___0__16__0__18([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_==/2___2'(H, A)
	    ),
	    cleanup___0__16__0__18(I)
	;   cleanup___0__16__0__18(I)
	).
cleanup___0__16 :-
	cleanup___0__17.
cleanup___0__17 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		  A), !,
	cleanup___0__17__0__23(A).
cleanup___0__17__0__23([]) :-
	cleanup___0__18.
cleanup___0__17__0__23([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=</2___2'(H, A)
	    ),
	    cleanup___0__17__0__23(I)
	;   cleanup___0__17__0__23(I)
	).
cleanup___0__17 :-
	cleanup___0__18.
cleanup___0__18 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		  A), !,
	cleanup___0__18__0__24(A).
cleanup___0__18__0__24([]) :-
	cleanup___0__19.
cleanup___0__18__0__24([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=:=/2___2'(H, A)
	    ),
	    cleanup___0__18__0__24(I)
	;   cleanup___0__18__0__24(I)
	).
cleanup___0__18 :-
	cleanup___0__19.
cleanup___0__19 :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A), !,
	cleanup___0__19__0__25(A).
cleanup___0__19__0__25([]) :-
	cleanup___0__20.
cleanup___0__19__0__25([A|F]) :-
	(   A=suspension(_, active, _)
	->  ( setarg(2, A, removed),
	      arg(3, A, B),
	      (   var(B)
	      ->  nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
			    C),
		  C=[_|D],
		  b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
			   D),
		  (   D=[E|_]
		  ->  setarg(3, E, _)
		  ;   true
		  )
	      ;   B=[_, _|D],
		  setarg(2, B, D),
		  (   D=[E|_]
		  ->  setarg(3, E, B)
		  ;   true
		  )
	      )
	    ),
	    cleanup___0__19__0__25(F)
	;   cleanup___0__19__0__25(F)
	).
cleanup___0__19 :-
	cleanup___0__20.
cleanup___0__20 :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		  A), !,
	cleanup___0__20__0__26(A).
cleanup___0__20__0__26([]) :-
	cleanup___0__21.
cleanup___0__20__0__26([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$default___1'(G, A)
	    ),
	    cleanup___0__20__0__26(H)
	;   cleanup___0__20__0__26(H)
	).
cleanup___0__20 :-
	cleanup___0__21.
cleanup___0__21 :-
	nb_getval('$chr_store_global_list_guard_entailment____variables___1', A), !,
	cleanup___0__21__0__27(A).
cleanup___0__21__0__27([]) :-
	cleanup___0__22.
cleanup___0__21__0__27([A|H]) :-
	(   A=suspension(_, active, _, _)
	->  ( A=suspension(_, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(3, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____variables___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(3, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(3, F, C)
		    ;   true
		    )
		)
	      ),
	      detach_variables___1(G, A)
	    ),
	    cleanup___0__21__0__27(H)
	;   cleanup___0__21__0__27(H)
	).
cleanup___0__21 :-
	cleanup___0__22.
cleanup___0__22.
variables(A) :-
	variables___1__0(A, _).
variables___1__0(V, N) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, E, D, C),
	ground(C),
	ground(D),
	var(E), !,
	B=suspension(_, _, _, _, F, G, H),
	setarg(2, B, removed),
	term_variables(term(F, G, H), M),
	arg(4, B, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_functor/3___3'(M, B),
	(   var(N)
	->  true
	;   N=suspension(_, _, _, O),
	    setarg(2, N, removed),
	    term_variables(O, T),
	    ( arg(3, N, P),
	      (   var(P)
	      ->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
			    Q),
		  Q=[_|R],
		  b_setval('$chr_store_global_list_guard_entailment____variables___1',
			   R),
		  (   R=[S|_]
		  ->  setarg(3, S, _)
		  ;   true
		  )
	      ;   P=[_, _|R],
		  setarg(2, P, R),
		  (   R=[S|_]
		  ->  setarg(3, S, P)
		  ;   true
		  )
	      )
	    ),
	    detach_variables___1(T, N)
	),
	functor(E, D, C),
	E=..[_|U],
	append(U, V, W),
	variables(W).
variables___1__0(B, A) :-
	(   var(A)
	->  ( A=suspension(D, active, _, B),
	      term_variables(B, C),
	      'chr none_locked'(C),
	      'chr gen_id'(D)
	    ),
	    ( nb_getval('$chr_store_global_list_guard_entailment____variables___1',
			E),
	      F=[A|E],
	      b_setval('$chr_store_global_list_guard_entailment____variables___1',
		       F),
	      (   E=[G|_]
	      ->  setarg(3, G, F)
	      ;   true
	      )
	    ),
	    attach_variables___1(C, A)
	;   setarg(2, A, active)
	).
'test/1_1_$default'(_) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$default'(A) :-
	nonvar(A),
	(   (   (   (   (   A=nonvar(B),
			    (   'chr newvia_1'(B, C)
			    ->  get_attr(C, guard_entailment, D),
				D=v(_, _, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
					  E)
			    ),
			    'chr sbag_member'(F, E),
			    F=suspension(_, active, _, _, G),
			    G==B, !
			;   A=var(H),
			    (   'chr newvia_1'(H, I)
			    ->  get_attr(I, guard_entailment, J),
				J=v(_, _, _, _, _, K, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
					  K)
			    ),
			    'chr sbag_member'(L, K),
			    L=suspension(_, active, _, _, M),
			    M==H, !
			)
		    ;   A=atom(N),
			(   'chr newvia_1'(N, O)
			->  get_attr(O, guard_entailment, P),
			    P=v(_, _, _, _, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
				      Q)
			),
			'chr sbag_member'(R, Q),
			R=suspension(_, active, _, _, _, S),
			S==N, !
		    )
		;   A=atomic(T),
		    (   'chr newvia_1'(T, U)
		    ->  get_attr(U, guard_entailment, V),
			V=v(_, _, _, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
				  W)
		    ),
		    'chr sbag_member'(X, W),
		    X=suspension(_, active, _, _, _, Y),
		    Y==T, !
		)
	    ;   A=compound(Z),
		(   'chr newvia_1'(Z, A1)
		->  get_attr(A1, guard_entailment, B1),
		    B1=v(_, _, _, _, _, _, _, _, C1, _, _, _, _, _, _, _, _, _, _, _, _, _)
		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			      C1)
		),
		'chr sbag_member'(D1, C1),
		D1=suspension(_, active, _, _, _, E1),
		E1==Z, !
	    )
	;   A= (F1\=G1),
	    (   'chr newvia_2'(F1, G1, H1)
	    ->  get_attr(H1, guard_entailment, I1),
		I1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J1, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			  J1)
	    ),
	    'chr sbag_member'(K1, J1),
	    K1=suspension(_, active, _, _, _, L1, M1),
	    L1==F1,
	    M1==G1, !
	).
'test/1_1_$default'(A) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !.
'test/1_1_$default'(K) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, M), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, K), !,
	negate_b(J, L),
	known(L),
	\+ try(M, K).
'test/1_1_$default'(_) :-
	fail.
'test/1_1_$special_,/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_,/2'(A, B) :-
	test(A),
	known(A),
	test(B).
'test/1_1_$special_\\+/1'(_) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_\\+/1'(A) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	(   (   (   (   (   (   (   A=functor(B, C, D),
				    nonvar(B),
				    (   'chr lock'(B),
					'chr lock'(C),
					'chr lock'(D),
					functor(B, C, D),
					'chr unlock'(B),
					'chr unlock'(C),
					'chr unlock'(D), !,
					fail
				    ;    !
				    )
				;   A=ground(E),
				    ground(E), !,
				    fail
				)
			    ;   A=number(F),
				number(F), !,
				fail
			    )
			;   A=float(G),
			    float(G), !,
			    fail
			)
		    ;   A=integer(H),
			integer(H), !,
			fail
		    )
		;   A=number(I),
		    nonvar(I), !
		)
	    ;   A=float(J),
		nonvar(J), !
	    )
	;   A=integer(K),
	    nonvar(K), !
	).
'test/1_1_$special_\\+/1'(K) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, M), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, \+K), !,
	negate_b(J, L),
	known(L),
	\+ try(M, \+K).
'test/1_1_$special_\\+/1'(_) :-
	fail.
'test/1_1_$special_integer/1'(_) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_integer/1'(A) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !.
'test/1_1_$special_integer/1'(A) :-
	integer(A), !.
'test/1_1_$special_integer/1'(A) :-
	nonvar(A), !,
	fail.
'test/1_1_$special_integer/1'(K) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, M), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, integer(K)), !,
	negate_b(J, L),
	known(L),
	\+ try(M, integer(K)).
'test/1_1_$special_integer/1'(_) :-
	fail.
'test/1_1_$special_float/1'(_) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_float/1'(A) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !.
'test/1_1_$special_float/1'(A) :-
	float(A), !.
'test/1_1_$special_float/1'(A) :-
	nonvar(A), !,
	fail.
'test/1_1_$special_float/1'(K) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, M), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, float(K)), !,
	negate_b(J, L),
	known(L),
	\+ try(M, float(K)).
'test/1_1_$special_float/1'(_) :-
	fail.
'test/1_1_$special_number/1'(_) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_number/1'(A) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !.
'test/1_1_$special_number/1'(A) :-
	number(A), !.
'test/1_1_$special_number/1'(A) :-
	nonvar(A), !,
	fail.
'test/1_1_$special_number/1'(K) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, M), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, number(K)), !,
	negate_b(J, L),
	known(L),
	\+ try(M, number(K)).
'test/1_1_$special_number/1'(_) :-
	fail.
'test/1_1_$special_ground/1'(_) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_ground/1'(A) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !.
'test/1_1_$special_ground/1'(A) :-
	ground(A), !.
'test/1_1_$special_ground/1'(K) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, M), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, ground(K)), !,
	negate_b(J, L),
	known(L),
	\+ try(M, ground(K)).
'test/1_1_$special_ground/1'(_) :-
	fail.
'test/1_1_$special_=:=/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_=:=/2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_=:=/2'(A, B) :-
	A==B, !.
'test/1_1_$special_=:=/2'(B, A) :-
	( ground(A),
	  ground(B)
	),
	(   B=:=A, !
	;    !,
	    fail
	).
'test/1_1_$special_=:=/2'(K, L) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, N), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, K=:=L), !,
	negate_b(J, M),
	known(M),
	\+ try(N, K=:=L).
'test/1_1_$special_=:=/2'(_, _) :-
	fail.
'test/1_1_$special_==/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_==/2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_==/2'(A, B) :-
	A==B, !.
'test/1_1_$special_==/2'(K, L) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, N), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, K==L), !,
	negate_b(J, M),
	known(M),
	\+ try(N, K==L).
'test/1_1_$special_==/2'(_, _) :-
	fail.
'test/1_1_$special_true/0' :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_true/0'.
'test/1_1_$special_functor/3'(_, _, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_functor/3'(A, B, C) :-
	(   'chr newvia'([A, B, C], D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		      F)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, H, I, J),
	H==A,
	I==B,
	J==C, !.
'test/1_1_$special_functor/3'(C, B, A) :-
	ground(A),
	ground(B),
	var(C),
	nb_getval('$chr_store_global_list_guard_entailment____variables___1', D),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, F),
	'chr lock'(C),
	'chr lock'(F),
	\+ memberchk_eq(C, F),
	'chr unlock'(C),
	'chr unlock'(F), !,
	functor(C, B, A).
'test/1_1_$special_functor/3'(A, B, C) :-
	nonvar(A),
	(   'chr lock'(A),
	    'chr lock'(B),
	    'chr lock'(C),
	    functor(A, B, C),
	    'chr unlock'(A),
	    'chr unlock'(B),
	    'chr unlock'(C), !
	;    !,
	    fail
	).
'test/1_1_$special_functor/3'(K, L, M) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, O), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, functor(K, L, M)), !,
	negate_b(J, N),
	known(N),
	\+ try(O, functor(K, L, M)).
'test/1_1_$special_functor/3'(_, _, _) :-
	fail.
'test/1_1_$special_=/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_=/2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_=/2'(B, A) :-
	ground(A),
	ground(B), !,
	B=A.
'test/1_1_$special_=/2'(K, L) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, N), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, K=L), !,
	negate_b(J, M),
	known(M),
	\+ try(N, K=L).
'test/1_1_$special_=/2'(_, _) :-
	fail.
'test/1_1_$special_;/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_;/2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_;/2'(A, B) :-
	A==fail, !,
	test(B).
'test/1_1_$special_;/2'(B, A) :-
	A==fail, !,
	test(B).
'test/1_1_$special_;/2'(A, B) :-
	negate_b(A, D),
	negate_b(B, C),
	(   known(C),
	    test(A)
	;   known(D),
	    test(B)
	).
'test/1_1_$special_is/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_is/2'(A, B) :-
	'test/1_1_$special_=:=/2'(A, B).
'test/1_1_$special_</2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_</2'(A, B) :-
	'test/1_1_$special_,/2'(A=<B, A=\=B).
'test/1_1_$special_>=/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_>=/2'(B, A) :-
	'test/1_1_$special_=</2'(A, B).
'test/1_1_$special_>/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_>/2'(B, A) :-
	'test/1_1_$special_</2'(A, B).
'test/1_1_$special_=\\=/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_=\\=/2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_=\\=/2'(B, A) :-
	( number(A),
	  (   'chr newvia_1'(B, C)
	  ->  get_attr(C, guard_entailment, D),
	      D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
	  ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			E)
	  ),
	  'chr sbag_member'(F, E),
	  F=suspension(_, active, _, _, _, G, H)
	),
	(   G==B,
	    number(H),
	    A>H, !
	;   H==B,
	    number(G),
	    A<G, !
	).
'test/1_1_$special_=\\=/2'(B, A) :-
	( ground(A),
	  ground(B)
	),
	(   B=\=A, !
	;    !,
	    fail
	).
'test/1_1_$special_=\\=/2'(K, L) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, N), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, K=\=L), !,
	negate_b(J, M),
	known(M),
	\+ try(N, K=\=L).
'test/1_1_$special_=\\=/2'(_, _) :-
	fail.
'test/1_1_$special_=</2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_=</2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_=</2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_=</2'(B, A) :-
	number(A),
	(   'chr newvia_1'(B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==B,
	number(H),
	H=<A, !.
'test/1_1_$special_=</2'(A, B) :-
	number(A),
	(   'chr newvia_1'(B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==B,
	number(H),
	A=<H, !.
'test/1_1_$special_=</2'(B, A) :-
	number(A),
	(   'chr newvia_1'(B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==B,
	number(H),
	H=<A, !.
'test/1_1_$special_=</2'(A, B) :-
	number(A),
	(   'chr newvia_1'(B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, H, G),
	G==B,
	number(H),
	A=<H, !.
'test/1_1_$special_=</2'(A, B) :-
	A==B, !.
'test/1_1_$special_=</2'(B, A) :-
	( ground(A),
	  ground(B)
	),
	(   B=<A, !
	;    !,
	    fail
	).
'test/1_1_$special_=</2'(K, L) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, N), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, K=<L), !,
	negate_b(J, M),
	known(M),
	\+ try(N, K=<L).
'test/1_1_$special_=</2'(_, _) :-
	fail.
'test/1_1_$special_\\==/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'test/1_1_$special_\\==/2'(A, B) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !.
'test/1_1_$special_\\==/2'(F, A) :-
	nonvar(A),
	'chr lock'(A),
	functor(A, C, B),
	'chr unlock'(A), !,
	A=..[_|E],
	length(D, B),
	G=..[C|D],
	add_args_nmatch(D, E, H),
	I= (\+functor(F, C, B);functor(F, C, B), F=G, H),
	test(I).
'test/1_1_$special_\\==/2'(A, B) :-
	nonvar(A), !,
	'test/1_1_$special_\\==/2'(B, A).
'test/1_1_$special_\\==/2'(K, L) :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _, _, J, N), !,
	B=suspension(_, _, _, _, C, D),
	setarg(2, B, removed),
	term_variables(term(C, D), I),
	arg(4, B, E),
	(   var(E)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F),
	    F=[_|G],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		     G),
	    (   G=[H|_]
	    ->  setarg(4, H, _)
	    ;   true
	    )
	;   E=[_, _|G],
	    setarg(2, E, G),
	    (   G=[H|_]
	    ->  setarg(4, H, E)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_;/2___2'(I, B),
	\+ try(J, K\==L), !,
	negate_b(J, M),
	known(M),
	\+ try(N, K\==L).
'test/1_1_$special_\\==/2'(_, _) :-
	fail.
'known/1_1_$default'(A) :-
	'known/1_1_$default___1__0'(A, _).
'known/1_1_$default___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(4, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(4, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(4, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$default___1'(J, G)
	    )
	).
'known/1_1_$default___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(4, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$default___1'(F, C)
	    )
	).
'known/1_1_$default___1__0'(A, M) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	E=suspension(_, _, _, _, G),
	setarg(2, E, removed),
	term_variables(G, L),
	arg(4, E, H),
	(   var(H)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      I),
	    I=[_|J],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     J),
	    (   J=[K|_]
	    ->  setarg(4, K, _)
	    ;   true
	    )
	;   H=[_, _|J],
	    setarg(2, H, J),
	    (   J=[K|_]
	    ->  setarg(4, K, H)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(L, E),
	(   var(M)
	->  true
	;   M=suspension(_, N, _, _, O),
	    setarg(2, M, removed),
	    (   N==not_stored_yet
	    ->  P=[]
	    ;   term_variables(O, P),
		( arg(4, M, Q),
		  (   var(Q)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
				R),
		      R=[_|S],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			       S),
		      (   S=[T|_]
		      ->  setarg(4, T, _)
		      ;   true
		      )
		  ;   Q=[_, _|S],
		      setarg(2, Q, S),
		      (   S=[T|_]
		      ->  setarg(4, T, Q)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$default___1'(P, M)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$default___1__0'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	(   var(E)
	->  E=suspension(F, not_stored_yet, 0, _, A),
	    'chr gen_id'(F)
	;   true
	),
	'known/1_1_$default___1__0__0__6'(D, A, E).
'known/1_1_$default___1__0__0__6'([], A, B) :-
	'known/1_1_$default___1__1'(A, B).
'known/1_1_$default___1__0__0__6'([A|V], D, L) :-
	(   A=suspension(_, active, _, _, B, U),
	    nonvar(B),
	    B= (\+C),
	    C==D
	->  ( A=suspension(_, _, _, _, E, F),
	      setarg(2, A, removed),
	      term_variables(term(E, F), K),
	      ( arg(4, A, G),
		(   var(G)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      H),
		    H=[_|I],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     I),
		    (   I=[J|_]
		    ->  setarg(4, J, _)
		    ;   true
		    )
		;   G=[_, _|I],
		    setarg(2, G, I),
		    (   I=[J|_]
		    ->  setarg(4, J, G)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(K, A)
	    ),
	    ( arg(2, L, O),
	      setarg(2, L, active),
	      ( arg(3, L, M),
		N is M+1,
		setarg(3, L, N)
	      ),
	      (   O==not_stored_yet
	      ->  L=suspension(_, _, _, _, P),
		  term_variables(P, Q),
		  'chr none_locked'(Q),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			      R),
		    S=[L|R],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			     S),
		    (   R=[T|_]
		    ->  setarg(4, T, S)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$default___1'(Q, L)
	      ;   true
	      )
	    ),
	    known(U),
	    (   L=suspension(_, active, N, _, _)
	    ->  setarg(2, L, inactive),
		'known/1_1_$default___1__0__0__6'(V, D, L)
	    ;   true
	    )
	;   'known/1_1_$default___1__0__0__6'(V, D, L)
	).
'known/1_1_$default___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	'known/1_1_$default___1__1'(B, A).
'known/1_1_$default___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$default___1__1__0__7'(D, A, E).
'known/1_1_$default___1__1__0__7'([], A, B) :-
	'known/1_1_$default___1__2'(A, B).
'known/1_1_$default___1__1__0__7'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(3, M, N),
		O is N+1,
		setarg(3, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(4, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$default___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$default___1__1__0__7'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$default___1__1__0__7'(W, E, M)
	).
'known/1_1_$default___1__1'(A, B) :-
	'known/1_1_$default___1__2'(A, B).
'known/1_1_$default___1__2'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(3, A, B),
	C is B+1,
	setarg(3, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(4, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$default___1'(F, A)
	;   true
	).
'known/1_1_$special_;/2'(A, B) :-
	'known/1_1_$special_;/2___2__0'(A, B, _).
'known/1_1_$special_;/2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(4, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(4, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(4, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(M, I)
	    )
	).
'known/1_1_$special_;/2___2__0'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(4, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(4, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(4, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(G, C)
	    )
	).
'known/1_1_$special_;/2___2__0'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H;I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(4, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(4, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(4, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_;/2___2__0'(A, T, K) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B= (C;D),
	(   'chr newvia_2'(C, D, E)
	->  get_attr(E, guard_entailment, F),
	    F=v(_, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      G)
	),
	'chr sbag_member'(H, G),
	H=suspension(_, active, _, _, I, J),
	I==C,
	J==D, !,
	(   var(K)
	->  true
	;   K=suspension(_, L, _, _, M, N),
	    setarg(2, K, removed),
	    (   L==not_stored_yet
	    ->  O=[]
	    ;   term_variables(term(M, N), O),
		( arg(4, K, P),
		  (   var(P)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				Q),
		      Q=[_|R],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       R),
		      (   R=[S|_]
		      ->  setarg(4, S, _)
		      ;   true
		      )
		  ;   P=[_, _|R],
		      setarg(2, P, R),
		      (   R=[S|_]
		      ->  setarg(4, S, P)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(O, K)
	    )
	),
	known(T).
'known/1_1_$special_;/2___2__0'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	(   var(F)
	->  F=suspension(G, not_stored_yet, 0, _, A, B),
	    'chr gen_id'(G)
	;   true
	),
	'known/1_1_$special_;/2___2__0__0__7'(E, A, B, F).
'known/1_1_$special_;/2___2__0__0__7'([], A, B, C) :-
	'known/1_1_$special_;/2___2__1'(A, B, C).
'known/1_1_$special_;/2___2__0__0__7'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D;F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(3, O, P),
		Q is P+1,
		setarg(3, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(4, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_;/2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_;/2___2__0__0__7'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_;/2___2__0__0__7'(Z, E, G, O)
	).
'known/1_1_$special_;/2___2__0'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	'known/1_1_$special_;/2___2__1'(B, C, A).
'known/1_1_$special_;/2___2__1'(A, R, I) :-
	nonvar(A),
	(   A= (\+B),
	    (   nonvar(B),
		(   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   B=nonvar(C),
										    (   'chr newvia_1'(C, D)
										    ->  get_attr(D,
												 guard_entailment,
												 E),
											E=v(_, _, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
										    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
												  F)
										    ),
										    'chr sbag_member'(G,
												      F),
										    G=suspension(_, active, _, _, H),
										    H==C, !,
										    (   var(I)
										    ->  true
										    ;   I=suspension(_, J, _, _, K, L),
											setarg(2,
											       I,
											       removed),
											(   J==not_stored_yet
											->  M=[]
											;   term_variables(term(K, L),
													   M),
											    ( arg(4, I, N),
											      (   var(N)
											      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
													    O),
												  O=[_|P],
												  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
													   P),
												  (   P=[Q|_]
												  ->  setarg(4, Q, _)
												  ;   true
												  )
											      ;   N=[_, _|P],
												  setarg(2, N, P),
												  (   P=[Q|_]
												  ->  setarg(4, Q, N)
												  ;   true
												  )
											      )
											    ),
											    'detach_known/1_1_$special_;/2___2'(M,
																I)
											)
										    ),
										    known(R)
										;   B=var(S),
										    (   'chr newvia_1'(S, T)
										    ->  get_attr(T,
												 guard_entailment,
												 U),
											U=v(_, _, _, _, _, V, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
										    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
												  V)
										    ),
										    'chr sbag_member'(W,
												      V),
										    W=suspension(_, active, _, _, X),
										    X==S, !,
										    (   var(I)
										    ->  true
										    ;   I=suspension(_, Y, _, _, Z, A1),
											setarg(2,
											       I,
											       removed),
											(   Y==not_stored_yet
											->  B1=[]
											;   term_variables(term(Z, A1),
													   B1),
											    ( arg(4, I, C1),
											      (   var(C1)
											      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
													    D1),
												  D1=[_|E1],
												  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
													   E1),
												  (   E1=[F1|_]
												  ->  setarg(4, F1, _)
												  ;   true
												  )
											      ;   C1=[_, _|E1],
												  setarg(2, C1, E1),
												  (   E1=[F1|_]
												  ->  setarg(4, F1, C1)
												  ;   true
												  )
											      )
											    ),
											    'detach_known/1_1_$special_;/2___2'(B1,
																I)
											)
										    ),
										    known(R)
										)
									    ;   B=atom(G1),
										(   'chr newvia_1'(G1,
												   H1)
										->  get_attr(H1,
											     guard_entailment,
											     I1),
										    I1=v(_, _, _, _, _, _, J1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
										;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
											      J1)
										),
										'chr sbag_member'(K1,
												  J1),
										K1=suspension(_, active, _, _, _, L1),
										L1==G1, !,
										(   var(I)
										->  true
										;   I=suspension(_, M1, _, _, N1, O1),
										    setarg(2,
											   I,
											   removed),
										    (   M1==not_stored_yet
										    ->  P1=[]
										    ;   term_variables(term(N1, O1),
												       P1),
											( arg(4, I, Q1),
											  (   var(Q1)
											  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
													R1),
											      R1=[_|S1],
											      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												       S1),
											      (   S1=[T1|_]
											      ->  setarg(4, T1, _)
											      ;   true
											      )
											  ;   Q1=[_, _|S1],
											      setarg(2, Q1, S1),
											      (   S1=[T1|_]
											      ->  setarg(4, T1, Q1)
											      ;   true
											      )
											  )
											),
											'detach_known/1_1_$special_;/2___2'(P1,
															    I)
										    )
										),
										known(R)
									    )
									;   B=atomic(U1),
									    (   'chr newvia_1'(U1,
											       V1)
									    ->  get_attr(V1,
											 guard_entailment,
											 W1),
										W1=v(_, _, _, _, _, _, _, X1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
									    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
											  X1)
									    ),
									    'chr sbag_member'(Y1,
											      X1),
									    Y1=suspension(_, active, _, _, _, Z1),
									    Z1==U1, !,
									    (   var(I)
									    ->  true
									    ;   I=suspension(_, A2, _, _, B2, C2),
										setarg(2,
										       I,
										       removed),
										(   A2==not_stored_yet
										->  D2=[]
										;   term_variables(term(B2, C2),
												   D2),
										    ( arg(4, I, E2),
										      (   var(E2)
										      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												    F2),
											  F2=[_|G2],
											  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												   G2),
											  (   G2=[H2|_]
											  ->  setarg(4, H2, _)
											  ;   true
											  )
										      ;   E2=[_, _|G2],
											  setarg(2, E2, G2),
											  (   G2=[H2|_]
											  ->  setarg(4, H2, E2)
											  ;   true
											  )
										      )
										    ),
										    'detach_known/1_1_$special_;/2___2'(D2,
															I)
										)
									    ),
									    known(R)
									)
								    ;   B=compound(I2),
									(   'chr newvia_1'(I2,
											   J2)
									->  get_attr(J2,
										     guard_entailment,
										     K2),
									    K2=v(_, _, _, _, _, _, _, _, L2, _, _, _, _, _, _, _, _, _, _, _, _, _)
									;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
										      L2)
									),
									'chr sbag_member'(M2,
											  L2),
									M2=suspension(_, active, _, _, _, N2),
									N2==I2, !,
									(   var(I)
									->  true
									;   I=suspension(_, O2, _, _, P2, Q2),
									    setarg(2,
										   I,
										   removed),
									    (   O2==not_stored_yet
									    ->  R2=[]
									    ;   term_variables(term(P2, Q2),
											       R2),
										( arg(4, I, S2),
										  (   var(S2)
										  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												T2),
										      T2=[_|U2],
										      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											       U2),
										      (   U2=[V2|_]
										      ->  setarg(4, V2, _)
										      ;   true
										      )
										  ;   S2=[_, _|U2],
										      setarg(2, S2, U2),
										      (   U2=[V2|_]
										      ->  setarg(4, V2, S2)
										      ;   true
										      )
										  )
										),
										'detach_known/1_1_$special_;/2___2'(R2,
														    I)
									    )
									),
									known(R)
								    )
								;   B=ground(W2),
								    (   'chr newvia_1'(W2,
										       X2)
								    ->  get_attr(X2,
										 guard_entailment,
										 Y2),
									Y2=v(_, _, _, _, _, _, _, _, _, Z2, _, _, _, _, _, _, _, _, _, _, _, _)
								    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
										  Z2)
								    ),
								    'chr sbag_member'(A3,
										      Z2),
								    A3=suspension(_, active, _, _, _, B3),
								    B3==W2, !,
								    (   var(I)
								    ->  true
								    ;   I=suspension(_, C3, _, _, D3, E3),
									setarg(2,
									       I,
									       removed),
									(   C3==not_stored_yet
									->  F3=[]
									;   term_variables(term(D3, E3),
											   F3),
									    ( arg(4, I, G3),
									      (   var(G3)
									      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											    H3),
										  H3=[_|I3],
										  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											   I3),
										  (   I3=[J3|_]
										  ->  setarg(4, J3, _)
										  ;   true
										  )
									      ;   G3=[_, _|I3],
										  setarg(2, G3, I3),
										  (   I3=[J3|_]
										  ->  setarg(4, J3, G3)
										  ;   true
										  )
									      )
									    ),
									    'detach_known/1_1_$special_;/2___2'(F3,
														I)
									)
								    ),
								    known(R)
								)
							    ;   B=integer(K3),
								(   'chr newvia_1'(K3,
										   L3)
								->  get_attr(L3,
									     guard_entailment,
									     M3),
								    M3=v(_, _, _, _, _, _, _, _, _, _, N3, _, _, _, _, _, _, _, _, _, _, _)
								;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
									      N3)
								),
								'chr sbag_member'(O3,
										  N3),
								O3=suspension(_, active, _, _, _, P3),
								P3==K3, !,
								(   var(I)
								->  true
								;   I=suspension(_, Q3, _, _, R3, S3),
								    setarg(2,
									   I,
									   removed),
								    (   Q3==not_stored_yet
								    ->  T3=[]
								    ;   term_variables(term(R3, S3),
										       T3),
									( arg(4, I, U3),
									  (   var(U3)
									  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											V3),
									      V3=[_|W3],
									      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										       W3),
									      (   W3=[X3|_]
									      ->  setarg(4, X3, _)
									      ;   true
									      )
									  ;   U3=[_, _|W3],
									      setarg(2, U3, W3),
									      (   W3=[X3|_]
									      ->  setarg(4, X3, U3)
									      ;   true
									      )
									  )
									),
									'detach_known/1_1_$special_;/2___2'(T3,
													    I)
								    )
								),
								known(R)
							    )
							;   B=float(Y3),
							    (   'chr newvia_1'(Y3,
									       Z3)
							    ->  get_attr(Z3,
									 guard_entailment,
									 A4),
								A4=v(_, _, _, _, _, _, _, _, _, _, _, B4, _, _, _, _, _, _, _, _, _, _)
							    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
									  B4)
							    ),
							    'chr sbag_member'(C4,
									      B4),
							    C4=suspension(_, active, _, _, _, D4),
							    D4==Y3, !,
							    (   var(I)
							    ->  true
							    ;   I=suspension(_, E4, _, _, F4, G4),
								setarg(2,
								       I,
								       removed),
								(   E4==not_stored_yet
								->  H4=[]
								;   term_variables(term(F4, G4),
										   H4),
								    ( arg(4, I, I4),
								      (   var(I4)
								      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										    J4),
									  J4=[_|K4],
									  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										   K4),
									  (   K4=[L4|_]
									  ->  setarg(4, L4, _)
									  ;   true
									  )
								      ;   I4=[_, _|K4],
									  setarg(2, I4, K4),
									  (   K4=[L4|_]
									  ->  setarg(4, L4, I4)
									  ;   true
									  )
								      )
								    ),
								    'detach_known/1_1_$special_;/2___2'(H4,
													I)
								)
							    ),
							    known(R)
							)
						    ;   B=number(M4),
							(   'chr newvia_1'(M4,
									   N4)
							->  get_attr(N4,
								     guard_entailment,
								     O4),
							    O4=v(_, _, _, _, _, _, _, _, _, _, _, _, P4, _, _, _, _, _, _, _, _, _)
							;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
								      P4)
							),
							'chr sbag_member'(Q4,
									  P4),
							Q4=suspension(_, active, _, _, _, R4),
							R4==M4, !,
							(   var(I)
							->  true
							;   I=suspension(_, S4, _, _, T4, U4),
							    setarg(2,
								   I,
								   removed),
							    (   S4==not_stored_yet
							    ->  V4=[]
							    ;   term_variables(term(T4, U4),
									       V4),
								( arg(4, I, W4),
								  (   var(W4)
								  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										X4),
								      X4=[_|Y4],
								      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									       Y4),
								      (   Y4=[Z4|_]
								      ->  setarg(4, Z4, _)
								      ;   true
								      )
								  ;   W4=[_, _|Y4],
								      setarg(2, W4, Y4),
								      (   Y4=[Z4|_]
								      ->  setarg(4, Z4, W4)
								      ;   true
								      )
								  )
								),
								'detach_known/1_1_$special_;/2___2'(V4,
												    I)
							    )
							),
							known(R)
						    )
						;   B= (A5=\=B5),
						    (   'chr newvia_2'(A5,
								       B5,
								       C5)
						    ->  get_attr(C5,
								 guard_entailment,
								 D5),
							D5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E5, _, _, _, _, _, _, _, _)
						    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
								  E5)
						    ),
						    'chr sbag_member'(F5, E5),
						    F5=suspension(_, active, _, _, _, G5, H5),
						    G5==A5,
						    H5==B5, !,
						    (   var(I)
						    ->  true
						    ;   I=suspension(_, I5, _, _, J5, K5),
							setarg(2, I, removed),
							(   I5==not_stored_yet
							->  L5=[]
							;   term_variables(term(J5, K5),
									   L5),
							    ( arg(4, I, M5),
							      (   var(M5)
							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									    N5),
								  N5=[_|O5],
								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									   O5),
								  (   O5=[P5|_]
								  ->  setarg(4, P5, _)
								  ;   true
								  )
							      ;   M5=[_, _|O5],
								  setarg(2, M5, O5),
								  (   O5=[P5|_]
								  ->  setarg(4, P5, M5)
								  ;   true
								  )
							      )
							    ),
							    'detach_known/1_1_$special_;/2___2'(L5,
												I)
							)
						    ),
						    known(R)
						)
					    ;   B= (\+Q5),
						(   'chr newvia_1'(Q5, R5)
						->  get_attr(R5,
							     guard_entailment,
							     S5),
						    S5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, T5, _, _, _, _, _, _, _)
						;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							      T5)
						),
						'chr sbag_member'(U5, T5),
						U5=suspension(_, active, _, _, V5),
						V5==Q5, !,
						(   var(I)
						->  true
						;   I=suspension(_, W5, _, _, X5, Y5),
						    setarg(2, I, removed),
						    (   W5==not_stored_yet
						    ->  Z5=[]
						    ;   term_variables(term(X5, Y5),
								       Z5),
							( arg(4, I, A6),
							  (   var(A6)
							  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									B6),
							      B6=[_|C6],
							      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								       C6),
							      (   C6=[D6|_]
							      ->  setarg(4, D6, _)
							      ;   true
							      )
							  ;   A6=[_, _|C6],
							      setarg(2, A6, C6),
							      (   C6=[D6|_]
							      ->  setarg(4, D6, A6)
							      ;   true
							      )
							  )
							),
							'detach_known/1_1_$special_;/2___2'(Z5,
											    I)
						    )
						),
						known(R)
					    )
					;   B=functor(E6, F6, G6),
					    (   'chr newvia'([E6, F6, G6], H6)
					    ->  get_attr(H6,
							 guard_entailment,
							 I6),
						I6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, J6, _, _, _, _, _, _)
					    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
							  J6)
					    ),
					    'chr sbag_member'(K6, J6),
					    K6=suspension(_, active, _, _, L6, M6, N6),
					    L6==E6,
					    M6==F6,
					    N6==G6, !,
					    (   var(I)
					    ->  true
					    ;   I=suspension(_, O6, _, _, P6, Q6),
						setarg(2, I, removed),
						(   O6==not_stored_yet
						->  R6=[]
						;   term_variables(term(P6, Q6),
								   R6),
						    ( arg(4, I, S6),
						      (   var(S6)
						      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								    T6),
							  T6=[_|U6],
							  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								   U6),
							  (   U6=[V6|_]
							  ->  setarg(4, V6, _)
							  ;   true
							  )
						      ;   S6=[_, _|U6],
							  setarg(2, S6, U6),
							  (   U6=[V6|_]
							  ->  setarg(4, V6, S6)
							  ;   true
							  )
						      )
						    ),
						    'detach_known/1_1_$special_;/2___2'(R6,
											I)
						)
					    ),
					    known(R)
					)
				    ;   B= (W6\=X6),
					(   'chr newvia_2'(W6, X6, Y6)
					->  get_attr(Y6, guard_entailment, Z6),
					    Z6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A7, _, _, _, _, _)
					;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
						      A7)
					),
					'chr sbag_member'(B7, A7),
					B7=suspension(_, active, _, _, _, C7, D7),
					C7==W6,
					D7==X6, !,
					(   var(I)
					->  true
					;   I=suspension(_, E7, _, _, F7, G7),
					    setarg(2, I, removed),
					    (   E7==not_stored_yet
					    ->  H7=[]
					    ;   term_variables(term(F7, G7),
							       H7),
						( arg(4, I, I7),
						  (   var(I7)
						  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								J7),
						      J7=[_|K7],
						      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							       K7),
						      (   K7=[L7|_]
						      ->  setarg(4, L7, _)
						      ;   true
						      )
						  ;   I7=[_, _|K7],
						      setarg(2, I7, K7),
						      (   K7=[L7|_]
						      ->  setarg(4, L7, I7)
						      ;   true
						      )
						  )
						),
						'detach_known/1_1_$special_;/2___2'(H7,
										    I)
					    )
					),
					known(R)
				    )
				;   B= (M7=N7),
				    (   'chr newvia_2'(M7, N7, O7)
				    ->  get_attr(O7, guard_entailment, P7),
					P7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q7, _, _, _, _)
				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
						  Q7)
				    ),
				    'chr sbag_member'(R7, Q7),
				    R7=suspension(_, active, _, _, S7, T7),
				    S7==M7,
				    T7==N7, !,
				    (   var(I)
				    ->  true
				    ;   I=suspension(_, U7, _, _, V7, W7),
					setarg(2, I, removed),
					(   U7==not_stored_yet
					->  X7=[]
					;   term_variables(term(V7, W7), X7),
					    ( arg(4, I, Y7),
					      (   var(Y7)
					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							    Z7),
						  Z7=[_|A8],
						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							   A8),
						  (   A8=[B8|_]
						  ->  setarg(4, B8, _)
						  ;   true
						  )
					      ;   Y7=[_, _|A8],
						  setarg(2, Y7, A8),
						  (   A8=[B8|_]
						  ->  setarg(4, B8, Y7)
						  ;   true
						  )
					      )
					    ),
					    'detach_known/1_1_$special_;/2___2'(X7,
										I)
					)
				    ),
				    known(R)
				)
			    ;   B= (C8\==D8),
				(   'chr newvia_2'(C8, D8, E8)
				->  get_attr(E8, guard_entailment, F8),
				    F8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G8, _, _, _)
				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
					      G8)
				),
				'chr sbag_member'(H8, G8),
				H8=suspension(_, active, _, _, _, I8, J8),
				I8==C8,
				J8==D8, !,
				(   var(I)
				->  true
				;   I=suspension(_, K8, _, _, L8, M8),
				    setarg(2, I, removed),
				    (   K8==not_stored_yet
				    ->  N8=[]
				    ;   term_variables(term(L8, M8), N8),
					( arg(4, I, O8),
					  (   var(O8)
					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							P8),
					      P8=[_|Q8],
					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						       Q8),
					      (   Q8=[R8|_]
					      ->  setarg(4, R8, _)
					      ;   true
					      )
					  ;   O8=[_, _|Q8],
					      setarg(2, O8, Q8),
					      (   Q8=[R8|_]
					      ->  setarg(4, R8, O8)
					      ;   true
					      )
					  )
					),
					'detach_known/1_1_$special_;/2___2'(N8,
									    I)
				    )
				),
				known(R)
			    )
			;   B= (S8==T8),
			    (   'chr newvia_2'(S8, T8, U8)
			    ->  get_attr(U8, guard_entailment, V8),
				V8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, W8, _, _)
			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
					  W8)
			    ),
			    'chr sbag_member'(X8, W8),
			    X8=suspension(_, active, _, _, _, Y8, Z8),
			    Y8==S8,
			    Z8==T8, !,
			    (   var(I)
			    ->  true
			    ;   I=suspension(_, A9, _, _, B9, C9),
				setarg(2, I, removed),
				(   A9==not_stored_yet
				->  D9=[]
				;   term_variables(term(B9, C9), D9),
				    ( arg(4, I, E9),
				      (   var(E9)
				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						    F9),
					  F9=[_|G9],
					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						   G9),
					  (   G9=[H9|_]
					  ->  setarg(4, H9, _)
					  ;   true
					  )
				      ;   E9=[_, _|G9],
					  setarg(2, E9, G9),
					  (   G9=[H9|_]
					  ->  setarg(4, H9, E9)
					  ;   true
					  )
				      )
				    ),
				    'detach_known/1_1_$special_;/2___2'(D9, I)
				)
			    ),
			    known(R)
			)
		    ;   B= (I9=<J9),
			(   'chr newvia_2'(I9, J9, K9)
			->  get_attr(K9, guard_entailment, L9),
			    L9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M9, _)
			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				      M9)
			),
			'chr sbag_member'(N9, M9),
			N9=suspension(_, active, _, _, _, O9, P9),
			O9==I9,
			P9==J9, !,
			(   var(I)
			->  true
			;   I=suspension(_, Q9, _, _, R9, S9),
			    setarg(2, I, removed),
			    (   Q9==not_stored_yet
			    ->  T9=[]
			    ;   term_variables(term(R9, S9), T9),
				( arg(4, I, U9),
				  (   var(U9)
				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						V9),
				      V9=[_|W9],
				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					       W9),
				      (   W9=[X9|_]
				      ->  setarg(4, X9, _)
				      ;   true
				      )
				  ;   U9=[_, _|W9],
				      setarg(2, U9, W9),
				      (   W9=[X9|_]
				      ->  setarg(4, X9, U9)
				      ;   true
				      )
				  )
				),
				'detach_known/1_1_$special_;/2___2'(T9, I)
			    )
			),
			known(R)
		    )
		;   B= (Y9=:=Z9),
		    (   'chr newvia_2'(Y9, Z9, A10)
		    ->  get_attr(A10, guard_entailment, B10),
			B10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C10)
		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
				  C10)
		    ),
		    'chr sbag_member'(D10, C10),
		    D10=suspension(_, active, _, _, _, E10, F10),
		    E10==Y9,
		    F10==Z9, !,
		    (   var(I)
		    ->  true
		    ;   I=suspension(_, G10, _, _, H10, I10),
			setarg(2, I, removed),
			(   G10==not_stored_yet
			->  J10=[]
			;   term_variables(term(H10, I10), J10),
			    ( arg(4, I, K10),
			      (   var(K10)
			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					    L10),
				  L10=[_|M10],
				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					   M10),
				  (   M10=[N10|_]
				  ->  setarg(4, N10, _)
				  ;   true
				  )
			      ;   K10=[_, _|M10],
				  setarg(2, K10, M10),
				  (   M10=[N10|_]
				  ->  setarg(4, N10, K10)
				  ;   true
				  )
			      )
			    ),
			    'detach_known/1_1_$special_;/2___2'(J10, I)
			)
		    ),
		    known(R)
		)
	    ;   (   'chr newvia_1'(B, O10)
		->  get_attr(O10, guard_entailment, P10),
		    P10=v(_, _, Q10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			      Q10)
		),
		'chr sbag_member'(R10, Q10),
		R10=suspension(_, active, _, _, S10),
		S10==B, !,
		(   var(I)
		->  true
		;   I=suspension(_, T10, _, _, U10, V10),
		    setarg(2, I, removed),
		    (   T10==not_stored_yet
		    ->  W10=[]
		    ;   term_variables(term(U10, V10), W10),
			( arg(4, I, X10),
			  (   var(X10)
			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					Y10),
			      Y10=[_|Z10],
			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				       Z10),
			      (   Z10=[A11|_]
			      ->  setarg(4, A11, _)
			      ;   true
			      )
			  ;   X10=[_, _|Z10],
			      setarg(2, X10, Z10),
			      (   Z10=[A11|_]
			      ->  setarg(4, A11, X10)
			      ;   true
			      )
			  )
			),
			'detach_known/1_1_$special_;/2___2'(W10, I)
		    )
		),
		known(R)
	    )
	;   A= (B11, _),
	    nonvar(B11),
	    B11= (\+C11),
	    nonvar(C11),
	    C11= (D11;E11),
	    (   'chr newvia_2'(D11, E11, F11)
	    ->  get_attr(F11, guard_entailment, G11),
		G11=v(_, _, _, H11, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			  H11)
	    ),
	    'chr sbag_member'(I11, H11),
	    I11=suspension(_, active, _, _, J11, K11),
	    J11==D11,
	    K11==E11, !,
	    (   var(I)
	    ->  true
	    ;   I=suspension(_, L11, _, _, M11, N11),
		setarg(2, I, removed),
		(   L11==not_stored_yet
		->  O11=[]
		;   term_variables(term(M11, N11), O11),
		    ( arg(4, I, P11),
		      (   var(P11)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				    Q11),
			  Q11=[_|R11],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				   R11),
			  (   R11=[S11|_]
			  ->  setarg(4, S11, _)
			  ;   true
			  )
		      ;   P11=[_, _|R11],
			  setarg(2, P11, R11),
			  (   R11=[S11|_]
			  ->  setarg(4, S11, P11)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_;/2___2'(O11, I)
		)
	    ),
	    known(R)
	).
'known/1_1_$special_;/2___2__1'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_;/2___2__1__0__34'(E, A, B, F).
'known/1_1_$special_;/2___2__1__0__34'([], A, B, C) :-
	'known/1_1_$special_;/2___2__2'(A, B, C).
'known/1_1_$special_;/2___2__1__0__34'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E;G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(3, P, Q),
		R is Q+1,
		setarg(3, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(4, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_;/2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_;/2___2__1__0__34'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_;/2___2__1__0__34'(A1, F, H, P)
	).
'known/1_1_$special_;/2___2__1'(A, B, C) :-
	'known/1_1_$special_;/2___2__2'(A, B, C).
'known/1_1_$special_;/2___2__2'(A, S, J) :-
	( nonvar(A),
	  A= (B, _),
	  nonvar(B),
	  B= (\+C)
	),
	(   nonvar(C),
	    (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   (   C=nonvar(D),
										(   'chr newvia_1'(D, E)
										->  get_attr(E,
											     guard_entailment,
											     F),
										    F=v(_, _, _, _, G, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
										;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
											      G)
										),
										'chr sbag_member'(H,
												  G),
										H=suspension(_, active, _, _, I),
										I==D, !,
										(   var(J)
										->  true
										;   J=suspension(_, K, _, _, L, M),
										    setarg(2,
											   J,
											   removed),
										    (   K==not_stored_yet
										    ->  N=[]
										    ;   term_variables(term(L, M),
												       N),
											( arg(4, J, O),
											  (   var(O)
											  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
													P),
											      P=[_|Q],
											      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												       Q),
											      (   Q=[R|_]
											      ->  setarg(4, R, _)
											      ;   true
											      )
											  ;   O=[_, _|Q],
											      setarg(2, O, Q),
											      (   Q=[R|_]
											      ->  setarg(4, R, O)
											      ;   true
											      )
											  )
											),
											'detach_known/1_1_$special_;/2___2'(N,
															    J)
										    )
										),
										known(S)
									    ;   C=var(T),
										(   'chr newvia_1'(T, U)
										->  get_attr(U,
											     guard_entailment,
											     V),
										    V=v(_, _, _, _, _, W, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
										;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
											      W)
										),
										'chr sbag_member'(X,
												  W),
										X=suspension(_, active, _, _, Y),
										Y==T, !,
										(   var(J)
										->  true
										;   J=suspension(_, Z, _, _, A1, B1),
										    setarg(2,
											   J,
											   removed),
										    (   Z==not_stored_yet
										    ->  C1=[]
										    ;   term_variables(term(A1, B1),
												       C1),
											( arg(4, J, D1),
											  (   var(D1)
											  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
													E1),
											      E1=[_|F1],
											      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												       F1),
											      (   F1=[G1|_]
											      ->  setarg(4, G1, _)
											      ;   true
											      )
											  ;   D1=[_, _|F1],
											      setarg(2, D1, F1),
											      (   F1=[G1|_]
											      ->  setarg(4, G1, D1)
											      ;   true
											      )
											  )
											),
											'detach_known/1_1_$special_;/2___2'(C1,
															    J)
										    )
										),
										known(S)
									    )
									;   C=atom(H1),
									    (   'chr newvia_1'(H1,
											       I1)
									    ->  get_attr(I1,
											 guard_entailment,
											 J1),
										J1=v(_, _, _, _, _, _, K1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
									    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
											  K1)
									    ),
									    'chr sbag_member'(L1,
											      K1),
									    L1=suspension(_, active, _, _, _, M1),
									    M1==H1, !,
									    (   var(J)
									    ->  true
									    ;   J=suspension(_, N1, _, _, O1, P1),
										setarg(2,
										       J,
										       removed),
										(   N1==not_stored_yet
										->  Q1=[]
										;   term_variables(term(O1, P1),
												   Q1),
										    ( arg(4, J, R1),
										      (   var(R1)
										      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												    S1),
											  S1=[_|T1],
											  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												   T1),
											  (   T1=[U1|_]
											  ->  setarg(4, U1, _)
											  ;   true
											  )
										      ;   R1=[_, _|T1],
											  setarg(2, R1, T1),
											  (   T1=[U1|_]
											  ->  setarg(4, U1, R1)
											  ;   true
											  )
										      )
										    ),
										    'detach_known/1_1_$special_;/2___2'(Q1,
															J)
										)
									    ),
									    known(S)
									)
								    ;   C=atomic(V1),
									(   'chr newvia_1'(V1,
											   W1)
									->  get_attr(W1,
										     guard_entailment,
										     X1),
									    X1=v(_, _, _, _, _, _, _, Y1, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
									;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
										      Y1)
									),
									'chr sbag_member'(Z1,
											  Y1),
									Z1=suspension(_, active, _, _, _, A2),
									A2==V1, !,
									(   var(J)
									->  true
									;   J=suspension(_, B2, _, _, C2, D2),
									    setarg(2,
										   J,
										   removed),
									    (   B2==not_stored_yet
									    ->  E2=[]
									    ;   term_variables(term(C2, D2),
											       E2),
										( arg(4, J, F2),
										  (   var(F2)
										  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
												G2),
										      G2=[_|H2],
										      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											       H2),
										      (   H2=[I2|_]
										      ->  setarg(4, I2, _)
										      ;   true
										      )
										  ;   F2=[_, _|H2],
										      setarg(2, F2, H2),
										      (   H2=[I2|_]
										      ->  setarg(4, I2, F2)
										      ;   true
										      )
										  )
										),
										'detach_known/1_1_$special_;/2___2'(E2,
														    J)
									    )
									),
									known(S)
								    )
								;   C=compound(J2),
								    (   'chr newvia_1'(J2,
										       K2)
								    ->  get_attr(K2,
										 guard_entailment,
										 L2),
									L2=v(_, _, _, _, _, _, _, _, M2, _, _, _, _, _, _, _, _, _, _, _, _, _)
								    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
										  M2)
								    ),
								    'chr sbag_member'(N2,
										      M2),
								    N2=suspension(_, active, _, _, _, O2),
								    O2==J2, !,
								    (   var(J)
								    ->  true
								    ;   J=suspension(_, P2, _, _, Q2, R2),
									setarg(2,
									       J,
									       removed),
									(   P2==not_stored_yet
									->  S2=[]
									;   term_variables(term(Q2, R2),
											   S2),
									    ( arg(4, J, T2),
									      (   var(T2)
									      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											    U2),
										  U2=[_|V2],
										  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											   V2),
										  (   V2=[W2|_]
										  ->  setarg(4, W2, _)
										  ;   true
										  )
									      ;   T2=[_, _|V2],
										  setarg(2, T2, V2),
										  (   V2=[W2|_]
										  ->  setarg(4, W2, T2)
										  ;   true
										  )
									      )
									    ),
									    'detach_known/1_1_$special_;/2___2'(S2,
														J)
									)
								    ),
								    known(S)
								)
							    ;   C=ground(X2),
								(   'chr newvia_1'(X2,
										   Y2)
								->  get_attr(Y2,
									     guard_entailment,
									     Z2),
								    Z2=v(_, _, _, _, _, _, _, _, _, A3, _, _, _, _, _, _, _, _, _, _, _, _)
								;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
									      A3)
								),
								'chr sbag_member'(B3,
										  A3),
								B3=suspension(_, active, _, _, _, C3),
								C3==X2, !,
								(   var(J)
								->  true
								;   J=suspension(_, D3, _, _, E3, F3),
								    setarg(2,
									   J,
									   removed),
								    (   D3==not_stored_yet
								    ->  G3=[]
								    ;   term_variables(term(E3, F3),
										       G3),
									( arg(4, J, H3),
									  (   var(H3)
									  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
											I3),
									      I3=[_|J3],
									      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										       J3),
									      (   J3=[K3|_]
									      ->  setarg(4, K3, _)
									      ;   true
									      )
									  ;   H3=[_, _|J3],
									      setarg(2, H3, J3),
									      (   J3=[K3|_]
									      ->  setarg(4, K3, H3)
									      ;   true
									      )
									  )
									),
									'detach_known/1_1_$special_;/2___2'(G3,
													    J)
								    )
								),
								known(S)
							    )
							;   C=integer(L3),
							    (   'chr newvia_1'(L3,
									       M3)
							    ->  get_attr(M3,
									 guard_entailment,
									 N3),
								N3=v(_, _, _, _, _, _, _, _, _, _, O3, _, _, _, _, _, _, _, _, _, _, _)
							    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
									  O3)
							    ),
							    'chr sbag_member'(P3,
									      O3),
							    P3=suspension(_, active, _, _, _, Q3),
							    Q3==L3, !,
							    (   var(J)
							    ->  true
							    ;   J=suspension(_, R3, _, _, S3, T3),
								setarg(2,
								       J,
								       removed),
								(   R3==not_stored_yet
								->  U3=[]
								;   term_variables(term(S3, T3),
										   U3),
								    ( arg(4, J, V3),
								      (   var(V3)
								      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										    W3),
									  W3=[_|X3],
									  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										   X3),
									  (   X3=[Y3|_]
									  ->  setarg(4, Y3, _)
									  ;   true
									  )
								      ;   V3=[_, _|X3],
									  setarg(2, V3, X3),
									  (   X3=[Y3|_]
									  ->  setarg(4, Y3, V3)
									  ;   true
									  )
								      )
								    ),
								    'detach_known/1_1_$special_;/2___2'(U3,
													J)
								)
							    ),
							    known(S)
							)
						    ;   C=float(Z3),
							(   'chr newvia_1'(Z3,
									   A4)
							->  get_attr(A4,
								     guard_entailment,
								     B4),
							    B4=v(_, _, _, _, _, _, _, _, _, _, _, C4, _, _, _, _, _, _, _, _, _, _)
							;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
								      C4)
							),
							'chr sbag_member'(D4,
									  C4),
							D4=suspension(_, active, _, _, _, E4),
							E4==Z3, !,
							(   var(J)
							->  true
							;   J=suspension(_, F4, _, _, G4, H4),
							    setarg(2,
								   J,
								   removed),
							    (   F4==not_stored_yet
							    ->  I4=[]
							    ;   term_variables(term(G4, H4),
									       I4),
								( arg(4, J, J4),
								  (   var(J4)
								  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
										K4),
								      K4=[_|L4],
								      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									       L4),
								      (   L4=[M4|_]
								      ->  setarg(4, M4, _)
								      ;   true
								      )
								  ;   J4=[_, _|L4],
								      setarg(2, J4, L4),
								      (   L4=[M4|_]
								      ->  setarg(4, M4, J4)
								      ;   true
								      )
								  )
								),
								'detach_known/1_1_$special_;/2___2'(I4,
												    J)
							    )
							),
							known(S)
						    )
						;   C=number(N4),
						    (   'chr newvia_1'(N4, O4)
						    ->  get_attr(O4,
								 guard_entailment,
								 P4),
							P4=v(_, _, _, _, _, _, _, _, _, _, _, _, Q4, _, _, _, _, _, _, _, _, _)
						    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
								  Q4)
						    ),
						    'chr sbag_member'(R4, Q4),
						    R4=suspension(_, active, _, _, _, S4),
						    S4==N4, !,
						    (   var(J)
						    ->  true
						    ;   J=suspension(_, T4, _, _, U4, V4),
							setarg(2, J, removed),
							(   T4==not_stored_yet
							->  W4=[]
							;   term_variables(term(U4, V4),
									   W4),
							    ( arg(4, J, X4),
							      (   var(X4)
							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									    Y4),
								  Y4=[_|Z4],
								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									   Z4),
								  (   Z4=[A5|_]
								  ->  setarg(4, A5, _)
								  ;   true
								  )
							      ;   X4=[_, _|Z4],
								  setarg(2, X4, Z4),
								  (   Z4=[A5|_]
								  ->  setarg(4, A5, X4)
								  ;   true
								  )
							      )
							    ),
							    'detach_known/1_1_$special_;/2___2'(W4,
												J)
							)
						    ),
						    known(S)
						)
					    ;   C= (B5=\=C5),
						(   'chr newvia_2'(B5, C5, D5)
						->  get_attr(D5,
							     guard_entailment,
							     E5),
						    E5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, F5, _, _, _, _, _, _, _, _)
						;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
							      F5)
						),
						'chr sbag_member'(G5, F5),
						G5=suspension(_, active, _, _, _, H5, I5),
						H5==B5,
						I5==C5, !,
						(   var(J)
						->  true
						;   J=suspension(_, J5, _, _, K5, L5),
						    setarg(2, J, removed),
						    (   J5==not_stored_yet
						    ->  M5=[]
						    ;   term_variables(term(K5, L5),
								       M5),
							( arg(4, J, N5),
							  (   var(N5)
							  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
									O5),
							      O5=[_|P5],
							      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								       P5),
							      (   P5=[Q5|_]
							      ->  setarg(4, Q5, _)
							      ;   true
							      )
							  ;   N5=[_, _|P5],
							      setarg(2, N5, P5),
							      (   P5=[Q5|_]
							      ->  setarg(4, Q5, N5)
							      ;   true
							      )
							  )
							),
							'detach_known/1_1_$special_;/2___2'(M5,
											    J)
						    )
						),
						known(S)
					    )
					;   C= (\+R5),
					    (   'chr newvia_1'(R5, S5)
					    ->  get_attr(S5,
							 guard_entailment,
							 T5),
						T5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, U5, _, _, _, _, _, _, _)
					    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							  U5)
					    ),
					    'chr sbag_member'(V5, U5),
					    V5=suspension(_, active, _, _, W5),
					    W5==R5, !,
					    (   var(J)
					    ->  true
					    ;   J=suspension(_, X5, _, _, Y5, Z5),
						setarg(2, J, removed),
						(   X5==not_stored_yet
						->  A6=[]
						;   term_variables(term(Y5, Z5),
								   A6),
						    ( arg(4, J, B6),
						      (   var(B6)
						      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								    C6),
							  C6=[_|D6],
							  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								   D6),
							  (   D6=[E6|_]
							  ->  setarg(4, E6, _)
							  ;   true
							  )
						      ;   B6=[_, _|D6],
							  setarg(2, B6, D6),
							  (   D6=[E6|_]
							  ->  setarg(4, E6, B6)
							  ;   true
							  )
						      )
						    ),
						    'detach_known/1_1_$special_;/2___2'(A6,
											J)
						)
					    ),
					    known(S)
					)
				    ;   C=functor(F6, G6, H6),
					(   'chr newvia'([F6, G6, H6], I6)
					->  get_attr(I6, guard_entailment, J6),
					    J6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, K6, _, _, _, _, _, _)
					;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
						      K6)
					),
					'chr sbag_member'(L6, K6),
					L6=suspension(_, active, _, _, M6, N6, O6),
					M6==F6,
					N6==G6,
					O6==H6, !,
					(   var(J)
					->  true
					;   J=suspension(_, P6, _, _, Q6, R6),
					    setarg(2, J, removed),
					    (   P6==not_stored_yet
					    ->  S6=[]
					    ;   term_variables(term(Q6, R6),
							       S6),
						( arg(4, J, T6),
						  (   var(T6)
						  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								U6),
						      U6=[_|V6],
						      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							       V6),
						      (   V6=[W6|_]
						      ->  setarg(4, W6, _)
						      ;   true
						      )
						  ;   T6=[_, _|V6],
						      setarg(2, T6, V6),
						      (   V6=[W6|_]
						      ->  setarg(4, W6, T6)
						      ;   true
						      )
						  )
						),
						'detach_known/1_1_$special_;/2___2'(S6,
										    J)
					    )
					),
					known(S)
				    )
				;   C= (X6\=Y6),
				    (   'chr newvia_2'(X6, Y6, Z6)
				    ->  get_attr(Z6, guard_entailment, A7),
					A7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, B7, _, _, _, _, _)
				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
						  B7)
				    ),
				    'chr sbag_member'(C7, B7),
				    C7=suspension(_, active, _, _, _, D7, E7),
				    D7==X6,
				    E7==Y6, !,
				    (   var(J)
				    ->  true
				    ;   J=suspension(_, F7, _, _, G7, H7),
					setarg(2, J, removed),
					(   F7==not_stored_yet
					->  I7=[]
					;   term_variables(term(G7, H7), I7),
					    ( arg(4, J, J7),
					      (   var(J7)
					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							    K7),
						  K7=[_|L7],
						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							   L7),
						  (   L7=[M7|_]
						  ->  setarg(4, M7, _)
						  ;   true
						  )
					      ;   J7=[_, _|L7],
						  setarg(2, J7, L7),
						  (   L7=[M7|_]
						  ->  setarg(4, M7, J7)
						  ;   true
						  )
					      )
					    ),
					    'detach_known/1_1_$special_;/2___2'(I7,
										J)
					)
				    ),
				    known(S)
				)
			    ;   C= (N7=O7),
				(   'chr newvia_2'(N7, O7, P7)
				->  get_attr(P7, guard_entailment, Q7),
				    Q7=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, R7, _, _, _, _)
				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
					      R7)
				),
				'chr sbag_member'(S7, R7),
				S7=suspension(_, active, _, _, T7, U7),
				T7==N7,
				U7==O7, !,
				(   var(J)
				->  true
				;   J=suspension(_, V7, _, _, W7, X7),
				    setarg(2, J, removed),
				    (   V7==not_stored_yet
				    ->  Y7=[]
				    ;   term_variables(term(W7, X7), Y7),
					( arg(4, J, Z7),
					  (   var(Z7)
					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
							A8),
					      A8=[_|B8],
					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						       B8),
					      (   B8=[C8|_]
					      ->  setarg(4, C8, _)
					      ;   true
					      )
					  ;   Z7=[_, _|B8],
					      setarg(2, Z7, B8),
					      (   B8=[C8|_]
					      ->  setarg(4, C8, Z7)
					      ;   true
					      )
					  )
					),
					'detach_known/1_1_$special_;/2___2'(Y7,
									    J)
				    )
				),
				known(S)
			    )
			;   C= (D8\==E8),
			    (   'chr newvia_2'(D8, E8, F8)
			    ->  get_attr(F8, guard_entailment, G8),
				G8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H8, _, _, _)
			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
					  H8)
			    ),
			    'chr sbag_member'(I8, H8),
			    I8=suspension(_, active, _, _, _, J8, K8),
			    J8==D8,
			    K8==E8, !,
			    (   var(J)
			    ->  true
			    ;   J=suspension(_, L8, _, _, M8, N8),
				setarg(2, J, removed),
				(   L8==not_stored_yet
				->  O8=[]
				;   term_variables(term(M8, N8), O8),
				    ( arg(4, J, P8),
				      (   var(P8)
				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						    Q8),
					  Q8=[_|R8],
					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						   R8),
					  (   R8=[S8|_]
					  ->  setarg(4, S8, _)
					  ;   true
					  )
				      ;   P8=[_, _|R8],
					  setarg(2, P8, R8),
					  (   R8=[S8|_]
					  ->  setarg(4, S8, P8)
					  ;   true
					  )
				      )
				    ),
				    'detach_known/1_1_$special_;/2___2'(O8, J)
				)
			    ),
			    known(S)
			)
		    ;   C= (T8==U8),
			(   'chr newvia_2'(T8, U8, V8)
			->  get_attr(V8, guard_entailment, W8),
			    W8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, X8, _, _)
			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				      X8)
			),
			'chr sbag_member'(Y8, X8),
			Y8=suspension(_, active, _, _, _, Z8, A9),
			Z8==T8,
			A9==U8, !,
			(   var(J)
			->  true
			;   J=suspension(_, B9, _, _, C9, D9),
			    setarg(2, J, removed),
			    (   B9==not_stored_yet
			    ->  E9=[]
			    ;   term_variables(term(C9, D9), E9),
				( arg(4, J, F9),
				  (   var(F9)
				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
						G9),
				      G9=[_|H9],
				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					       H9),
				      (   H9=[I9|_]
				      ->  setarg(4, I9, _)
				      ;   true
				      )
				  ;   F9=[_, _|H9],
				      setarg(2, F9, H9),
				      (   H9=[I9|_]
				      ->  setarg(4, I9, F9)
				      ;   true
				      )
				  )
				),
				'detach_known/1_1_$special_;/2___2'(E9, J)
			    )
			),
			known(S)
		    )
		;   C= (J9=<K9),
		    (   'chr newvia_2'(J9, K9, L9)
		    ->  get_attr(L9, guard_entailment, M9),
			M9=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N9, _)
		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				  N9)
		    ),
		    'chr sbag_member'(O9, N9),
		    O9=suspension(_, active, _, _, _, P9, Q9),
		    P9==J9,
		    Q9==K9, !,
		    (   var(J)
		    ->  true
		    ;   J=suspension(_, R9, _, _, S9, T9),
			setarg(2, J, removed),
			(   R9==not_stored_yet
			->  U9=[]
			;   term_variables(term(S9, T9), U9),
			    ( arg(4, J, V9),
			      (   var(V9)
			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					    W9),
				  W9=[_|X9],
				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					   X9),
				  (   X9=[Y9|_]
				  ->  setarg(4, Y9, _)
				  ;   true
				  )
			      ;   V9=[_, _|X9],
				  setarg(2, V9, X9),
				  (   X9=[Y9|_]
				  ->  setarg(4, Y9, V9)
				  ;   true
				  )
			      )
			    ),
			    'detach_known/1_1_$special_;/2___2'(U9, J)
			)
		    ),
		    known(S)
		)
	    ;   C= (Z9=:=A10),
		(   'chr newvia_2'(Z9, A10, B10)
		->  get_attr(B10, guard_entailment, C10),
		    C10=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D10)
		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			      D10)
		),
		'chr sbag_member'(E10, D10),
		E10=suspension(_, active, _, _, _, F10, G10),
		F10==Z9,
		G10==A10, !,
		(   var(J)
		->  true
		;   J=suspension(_, H10, _, _, I10, J10),
		    setarg(2, J, removed),
		    (   H10==not_stored_yet
		    ->  K10=[]
		    ;   term_variables(term(I10, J10), K10),
			( arg(4, J, L10),
			  (   var(L10)
			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					M10),
			      M10=[_|N10],
			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				       N10),
			      (   N10=[O10|_]
			      ->  setarg(4, O10, _)
			      ;   true
			      )
			  ;   L10=[_, _|N10],
			      setarg(2, L10, N10),
			      (   N10=[O10|_]
			      ->  setarg(4, O10, L10)
			      ;   true
			      )
			  )
			),
			'detach_known/1_1_$special_;/2___2'(K10, J)
		    )
		),
		known(S)
	    )
	;   (   'chr newvia_1'(C, P10)
	    ->  get_attr(P10, guard_entailment, Q10),
		Q10=v(_, _, R10, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			  R10)
	    ),
	    'chr sbag_member'(S10, R10),
	    S10=suspension(_, active, _, _, T10),
	    T10==C, !,
	    (   var(J)
	    ->  true
	    ;   J=suspension(_, U10, _, _, V10, W10),
		setarg(2, J, removed),
		(   U10==not_stored_yet
		->  X10=[]
		;   term_variables(term(V10, W10), X10),
		    ( arg(4, J, Y10),
		      (   var(Y10)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				    Z10),
			  Z10=[_|A11],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				   A11),
			  (   A11=[B11|_]
			  ->  setarg(4, B11, _)
			  ;   true
			  )
		      ;   Y10=[_, _|A11],
			  setarg(2, Y10, A11),
			  (   A11=[B11|_]
			  ->  setarg(4, B11, Y10)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_;/2___2'(X10, J)
		)
	    ),
	    known(S)
	).
'known/1_1_$special_;/2___2__2'(A, P, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, I, J),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  K=[]
	    ;   term_variables(term(I, J), K),
		( arg(4, G, L),
		  (   var(L)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				M),
		      M=[_|N],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       N),
		      (   N=[O|_]
		      ->  setarg(4, O, _)
		      ;   true
		      )
		  ;   L=[_, _|N],
		      setarg(2, L, N),
		      (   N=[O|_]
		      ->  setarg(4, O, L)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(K, G)
	    )
	),
	known(P).
'known/1_1_$special_;/2___2__2'(A, Q, H) :-
	nonvar(A),
	A= (B, _),
	(   'chr newvia_1'(B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	G==B, !,
	(   var(H)
	->  true
	;   H=suspension(_, I, _, _, J, K),
	    setarg(2, H, removed),
	    (   I==not_stored_yet
	    ->  L=[]
	    ;   term_variables(term(J, K), L),
		( arg(4, H, M),
		  (   var(M)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				N),
		      N=[_|O],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       O),
		      (   O=[P|_]
		      ->  setarg(4, P, _)
		      ;   true
		      )
		  ;   M=[_, _|O],
		      setarg(2, M, O),
		      (   O=[P|_]
		      ->  setarg(4, P, M)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(L, H)
	    )
	),
	known(Q).
'known/1_1_$special_;/2___2__2'(A, K, B) :-
	A==fail, !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, D, E),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  F=[]
	    ;   term_variables(term(D, E), F),
		( arg(4, B, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(F, B)
	    )
	),
	known(K).
'known/1_1_$special_;/2___2__2'(K, A, B) :-
	A==fail, !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, D, E),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  F=[]
	    ;   term_variables(term(D, E), F),
		( arg(4, B, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(F, B)
	    )
	),
	known(K).
'known/1_1_$special_;/2___2__2'(A, _, B) :-
	A==true, !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, D, E),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  F=[]
	    ;   term_variables(term(D, E), F),
		( arg(4, B, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(F, B)
	    )
	).
'known/1_1_$special_;/2___2__2'(_, A, B) :-
	A==true, !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, D, E),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  F=[]
	    ;   term_variables(term(D, E), F),
		( arg(4, B, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_;/2___2'(F, B)
	    )
	).
'known/1_1_$special_;/2___2__2'(A, B1, I) :-
	( nonvar(A),
	  A= (\+B),
	  nonvar(B),
	  B=functor(C, R, S)
	),
	(   (   (   'chr newvia_1'(C, D)
		->  get_attr(D, guard_entailment, E),
		    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			      F)
		),
		'chr sbag_member'(G, F),
		G=suspension(_, active, _, _, H, _, _),
		H==C, !,
		(   var(I)
		->  true
		;   I=suspension(_, J, _, _, K, L),
		    setarg(2, I, removed),
		    (   J==not_stored_yet
		    ->  M=[]
		    ;   term_variables(term(K, L), M),
			( arg(4, I, N),
			  (   var(N)
			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					O),
			      O=[_|P],
			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				       P),
			      (   P=[Q|_]
			      ->  setarg(4, Q, _)
			      ;   true
			      )
			  ;   N=[_, _|P],
			      setarg(2, N, P),
			      (   P=[Q|_]
			      ->  setarg(4, Q, N)
			      ;   true
			      )
			  )
			),
			'detach_known/1_1_$special_;/2___2'(M, I)
		    )
		)
	    ;   nonvar(C),
		'chr lock'(C),
		'chr lock'(R),
		'chr lock'(S),
		functor(C, R, S),
		'chr unlock'(C),
		'chr unlock'(R),
		'chr unlock'(S), !,
		(   var(I)
		->  true
		;   I=suspension(_, T, _, _, U, V),
		    setarg(2, I, removed),
		    (   T==not_stored_yet
		    ->  W=[]
		    ;   term_variables(term(U, V), W),
			( arg(4, I, X),
			  (   var(X)
			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
					Y),
			      Y=[_|Z],
			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				       Z),
			      (   Z=[A1|_]
			      ->  setarg(4, A1, _)
			      ;   true
			      )
			  ;   X=[_, _|Z],
			      setarg(2, X, Z),
			      (   Z=[A1|_]
			      ->  setarg(4, A1, X)
			      ;   true
			      )
			  )
			),
			'detach_known/1_1_$special_;/2___2'(W, I)
		    )
		),
		known(B1)
	    )
	;   nonvar(C),
	    'chr lock'(C),
	    'chr lock'(R),
	    'chr lock'(S),
	    \+ functor(C, R, S),
	    'chr unlock'(C),
	    'chr unlock'(R),
	    'chr unlock'(S), !,
	    (   var(I)
	    ->  true
	    ;   I=suspension(_, C1, _, _, D1, E1),
		setarg(2, I, removed),
		(   C1==not_stored_yet
		->  F1=[]
		;   term_variables(term(D1, E1), F1),
		    ( arg(4, I, G1),
		      (   var(G1)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				    H1),
			  H1=[_|I1],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
				   I1),
			  (   I1=[J1|_]
			  ->  setarg(4, J1, _)
			  ;   true
			  )
		      ;   G1=[_, _|I1],
			  setarg(2, G1, I1),
			  (   I1=[J1|_]
			  ->  setarg(4, J1, G1)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_;/2___2'(F1, I)
		)
	    )
	).
'known/1_1_$special_;/2___2__2'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(3, A, B),
	C is B+1,
	setarg(3, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(4, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_;/2___2'(G, A)
	;   true
	).
'known/1_1_$special_nonvar/1'(A) :-
	'known/1_1_$special_nonvar/1___1__0'(A, _).
'known/1_1_$special_nonvar/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(4, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(4, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(4, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_nonvar/1___1'(J, G)
	    )
	).
'known/1_1_$special_nonvar/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(4, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_nonvar/1___1'(F, C)
	    )
	).
'known/1_1_$special_nonvar/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=nonvar(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(4, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(4, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(4, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_nonvar/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_nonvar/1___1__0'(A, M) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	E=suspension(_, _, _, _, G),
	setarg(2, E, removed),
	term_variables(G, L),
	arg(4, E, H),
	(   var(H)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		      I),
	    I=[_|J],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		     J),
	    (   J=[K|_]
	    ->  setarg(4, K, _)
	    ;   true
	    )
	;   H=[_, _|J],
	    setarg(2, H, J),
	    (   J=[K|_]
	    ->  setarg(4, K, H)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_var/1___1'(L, E),
	(   var(M)
	->  true
	;   M=suspension(_, N, _, _, O),
	    setarg(2, M, removed),
	    (   N==not_stored_yet
	    ->  P=[]
	    ;   term_variables(O, P),
		( arg(4, M, Q),
		  (   var(Q)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
				R),
		      R=[_|S],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			       S),
		      (   S=[T|_]
		      ->  setarg(4, T, _)
		      ;   true
		      )
		  ;   Q=[_, _|S],
		      setarg(2, Q, S),
		      (   S=[T|_]
		      ->  setarg(4, T, Q)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_nonvar/1___1'(P, M)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_nonvar/1___1__0'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	(   var(E)
	->  E=suspension(F, not_stored_yet, 0, _, A),
	    'chr gen_id'(F)
	;   true
	),
	'known/1_1_$special_nonvar/1___1__0__0__7'(D, A, E).
'known/1_1_$special_nonvar/1___1__0__0__7'([], A, B) :-
	'known/1_1_$special_nonvar/1___1__1'(A, B).
'known/1_1_$special_nonvar/1___1__0__0__7'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=nonvar(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(3, M, N),
		O is N+1,
		setarg(3, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(4, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_nonvar/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_nonvar/1___1__0__0__7'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_nonvar/1___1__0__0__7'(W, E, M)
	).
'known/1_1_$special_nonvar/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	'known/1_1_$special_nonvar/1___1__1'(B, A).
'known/1_1_$special_nonvar/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_nonvar/1___1__1__0__8'(D, A, E).
'known/1_1_$special_nonvar/1___1__1__0__8'([], A, B) :-
	'known/1_1_$special_nonvar/1___1__2'(A, B).
'known/1_1_$special_nonvar/1___1__1__0__8'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=nonvar(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(3, N, O),
		P is O+1,
		setarg(3, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(4, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_nonvar/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_nonvar/1___1__1__0__8'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_nonvar/1___1__1__0__8'(X, F, N)
	).
'known/1_1_$special_nonvar/1___1__1'(A, B) :-
	'known/1_1_$special_nonvar/1___1__2'(A, B).
'known/1_1_$special_nonvar/1___1__2'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(3, A, B),
	C is B+1,
	setarg(3, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(4, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_nonvar/1___1'(F, A)
	;   true
	).
'known/1_1_$special_var/1'(A) :-
	'known/1_1_$special_var/1___1__0'(A, _).
'known/1_1_$special_var/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(4, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(4, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(4, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_var/1___1'(J, G)
	    )
	).
'known/1_1_$special_var/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(4, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_var/1___1'(F, C)
	    )
	).
'known/1_1_$special_var/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=var(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(4, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(4, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(4, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_var/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_var/1___1__0'(A, M) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	E=suspension(_, _, _, _, G),
	setarg(2, E, removed),
	term_variables(G, L),
	arg(4, E, H),
	(   var(H)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		      I),
	    I=[_|J],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		     J),
	    (   J=[K|_]
	    ->  setarg(4, K, _)
	    ;   true
	    )
	;   H=[_, _|J],
	    setarg(2, H, J),
	    (   J=[K|_]
	    ->  setarg(4, K, H)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_nonvar/1___1'(L, E),
	(   var(M)
	->  true
	;   M=suspension(_, N, _, _, O),
	    setarg(2, M, removed),
	    (   N==not_stored_yet
	    ->  P=[]
	    ;   term_variables(O, P),
		( arg(4, M, Q),
		  (   var(Q)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
				R),
		      R=[_|S],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			       S),
		      (   S=[T|_]
		      ->  setarg(4, T, _)
		      ;   true
		      )
		  ;   Q=[_, _|S],
		      setarg(2, Q, S),
		      (   S=[T|_]
		      ->  setarg(4, T, Q)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_var/1___1'(P, M)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_var/1___1__0'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	(   var(E)
	->  E=suspension(F, not_stored_yet, 0, _, A),
	    'chr gen_id'(F)
	;   true
	),
	'known/1_1_$special_var/1___1__0__0__7'(D, A, E).
'known/1_1_$special_var/1___1__0__0__7'([], A, B) :-
	'known/1_1_$special_var/1___1__1'(A, B).
'known/1_1_$special_var/1___1__0__0__7'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=var(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(3, M, N),
		O is N+1,
		setarg(3, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(4, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_var/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_var/1___1__0__0__7'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_var/1___1__0__0__7'(W, E, M)
	).
'known/1_1_$special_var/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	'known/1_1_$special_var/1___1__1'(B, A).
'known/1_1_$special_var/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_var/1___1__1__0__8'(D, A, E).
'known/1_1_$special_var/1___1__1__0__8'([], A, B) :-
	'known/1_1_$special_var/1___1__2'(A, B).
'known/1_1_$special_var/1___1__1__0__8'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=var(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(3, N, O),
		P is O+1,
		setarg(3, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(4, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_var/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_var/1___1__1__0__8'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_var/1___1__1__0__8'(X, F, N)
	).
'known/1_1_$special_var/1___1__1'(A, B) :-
	'known/1_1_$special_var/1___1__2'(A, B).
'known/1_1_$special_var/1___1__2'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(3, A, B),
	C is B+1,
	setarg(3, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(4, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_var/1___1'(F, A)
	;   true
	).
'known/1_1_$special_atom/1'(A) :-
	'known/1_1_$special_atom/1___1__0'(A, _).
'known/1_1_$special_atom/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(5, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(5, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(5, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_atom/1___1'(J, G)
	    )
	).
'known/1_1_$special_atom/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(5, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(5, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(5, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_atom/1___1'(F, C)
	    )
	).
'known/1_1_$special_atom/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=atom(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(5, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(5, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(5, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_atom/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_atom/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	(   '$novel_production'(A, 239), !,
	    '$extend_history'(A, 239),
	    arg(2, A, F),
	    setarg(2, A, active),
	    arg(4, A, D),
	    E is D+1,
	    setarg(4, A, E),
	    (   F==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, G),
		term_variables(G, H),
		'chr none_locked'(H),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			    I),
		  J=[A|I],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			   J),
		  (   I=[K|_]
		  ->  setarg(5, K, J)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_atom/1___1'(H, A)
	    ;   true
	    ),
	    'known/1_1_$special_nonvar/1'(B),
	    (   A=suspension(_, active, _, E, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_atom/1___1__1'(B, A)
	    ;   true
	    )
	;   'known/1_1_$special_atom/1___1__1'(B, A)
	).
'known/1_1_$special_atom/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_atom/1___1__1__0__7'(D, A, E).
'known/1_1_$special_atom/1___1__1__0__7'([], A, B) :-
	'known/1_1_$special_atom/1___1__2'(A, B).
'known/1_1_$special_atom/1___1__1__0__7'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=atom(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(4, M, N),
		O is N+1,
		setarg(4, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(5, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_atom/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, _, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_atom/1___1__1__0__7'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_atom/1___1__1__0__7'(W, E, M)
	).
'known/1_1_$special_atom/1___1__1'(A, B) :-
	'known/1_1_$special_atom/1___1__2'(A, B).
'known/1_1_$special_atom/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_atom/1___1__2__0__8'(D, A, E).
'known/1_1_$special_atom/1___1__2__0__8'([], A, B) :-
	'known/1_1_$special_atom/1___1__3'(A, B).
'known/1_1_$special_atom/1___1__2__0__8'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=atom(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(4, N, O),
		P is O+1,
		setarg(4, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(5, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_atom/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, _, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_atom/1___1__2__0__8'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_atom/1___1__2__0__8'(X, F, N)
	).
'known/1_1_$special_atom/1___1__2'(A, B) :-
	'known/1_1_$special_atom/1___1__3'(A, B).
'known/1_1_$special_atom/1___1__3'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(5, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_atom/1___1'(F, A)
	;   true
	).
'known/1_1_$special_atomic/1'(A) :-
	'known/1_1_$special_atomic/1___1__0'(A, _).
'known/1_1_$special_atomic/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(5, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(5, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(5, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_atomic/1___1'(J, G)
	    )
	).
'known/1_1_$special_atomic/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(5, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(5, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(5, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_atomic/1___1'(F, C)
	    )
	).
'known/1_1_$special_atomic/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=atomic(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(5, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(5, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(5, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_atomic/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_atomic/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	(   '$novel_production'(A, 237), !,
	    '$extend_history'(A, 237),
	    arg(2, A, F),
	    setarg(2, A, active),
	    arg(4, A, D),
	    E is D+1,
	    setarg(4, A, E),
	    (   F==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, G),
		term_variables(G, H),
		'chr none_locked'(H),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			    I),
		  J=[A|I],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			   J),
		  (   I=[K|_]
		  ->  setarg(5, K, J)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_atomic/1___1'(H, A)
	    ;   true
	    ),
	    'known/1_1_$special_nonvar/1'(B),
	    (   A=suspension(_, active, _, E, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_atomic/1___1__1'(B, A)
	    ;   true
	    )
	;   'known/1_1_$special_atomic/1___1__1'(B, A)
	).
'known/1_1_$special_atomic/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_atomic/1___1__1__0__7'(D, A, E).
'known/1_1_$special_atomic/1___1__1__0__7'([], A, B) :-
	'known/1_1_$special_atomic/1___1__2'(A, B).
'known/1_1_$special_atomic/1___1__1__0__7'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=atomic(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(4, M, N),
		O is N+1,
		setarg(4, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(5, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_atomic/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, _, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_atomic/1___1__1__0__7'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_atomic/1___1__1__0__7'(W, E, M)
	).
'known/1_1_$special_atomic/1___1__1'(A, B) :-
	'known/1_1_$special_atomic/1___1__2'(A, B).
'known/1_1_$special_atomic/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_atomic/1___1__2__0__8'(D, A, E).
'known/1_1_$special_atomic/1___1__2__0__8'([], A, B) :-
	'known/1_1_$special_atomic/1___1__3'(A, B).
'known/1_1_$special_atomic/1___1__2__0__8'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=atomic(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(4, N, O),
		P is O+1,
		setarg(4, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(5, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_atomic/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, _, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_atomic/1___1__2__0__8'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_atomic/1___1__2__0__8'(X, F, N)
	).
'known/1_1_$special_atomic/1___1__2'(A, B) :-
	'known/1_1_$special_atomic/1___1__3'(A, B).
'known/1_1_$special_atomic/1___1__3'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(5, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_atomic/1___1'(F, A)
	;   true
	).
'known/1_1_$special_compound/1'(A) :-
	'known/1_1_$special_compound/1___1__0'(A, _).
'known/1_1_$special_compound/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(5, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(5, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(5, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_compound/1___1'(J, G)
	    )
	).
'known/1_1_$special_compound/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(5, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(5, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(5, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_compound/1___1'(F, C)
	    )
	).
'known/1_1_$special_compound/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=compound(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(5, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(5, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(5, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_compound/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_compound/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	(   '$novel_production'(A, 236), !,
	    '$extend_history'(A, 236),
	    arg(2, A, F),
	    setarg(2, A, active),
	    arg(4, A, D),
	    E is D+1,
	    setarg(4, A, E),
	    (   F==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, G),
		term_variables(G, H),
		'chr none_locked'(H),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			    I),
		  J=[A|I],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			   J),
		  (   I=[K|_]
		  ->  setarg(5, K, J)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_compound/1___1'(H, A)
	    ;   true
	    ),
	    'known/1_1_$special_nonvar/1'(B),
	    (   A=suspension(_, active, _, E, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_compound/1___1__1'(B, A)
	    ;   true
	    )
	;   'known/1_1_$special_compound/1___1__1'(B, A)
	).
'known/1_1_$special_compound/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_compound/1___1__1__0__7'(D, A, E).
'known/1_1_$special_compound/1___1__1__0__7'([], A, B) :-
	'known/1_1_$special_compound/1___1__2'(A, B).
'known/1_1_$special_compound/1___1__1__0__7'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=compound(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(4, M, N),
		O is N+1,
		setarg(4, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(5, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_compound/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, _, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_compound/1___1__1__0__7'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_compound/1___1__1__0__7'(W, E, M)
	).
'known/1_1_$special_compound/1___1__1'(A, B) :-
	'known/1_1_$special_compound/1___1__2'(A, B).
'known/1_1_$special_compound/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_compound/1___1__2__0__8'(D, A, E).
'known/1_1_$special_compound/1___1__2__0__8'([], A, B) :-
	'known/1_1_$special_compound/1___1__3'(A, B).
'known/1_1_$special_compound/1___1__2__0__8'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=compound(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(4, N, O),
		P is O+1,
		setarg(4, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(5, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_compound/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, _, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_compound/1___1__2__0__8'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_compound/1___1__2__0__8'(X, F, N)
	).
'known/1_1_$special_compound/1___1__2'(A, B) :-
	'known/1_1_$special_compound/1___1__3'(A, B).
'known/1_1_$special_compound/1___1__3'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(5, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_compound/1___1'(F, A)
	;   true
	).
'known/1_1_$special_ground/1'(A) :-
	'known/1_1_$special_ground/1___1__0'(A, _).
'known/1_1_$special_ground/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(5, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(5, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(5, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_ground/1___1'(J, G)
	    )
	).
'known/1_1_$special_ground/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(5, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(5, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(5, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_ground/1___1'(F, C)
	    )
	).
'known/1_1_$special_ground/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=ground(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(5, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(5, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(5, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_ground/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_ground/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	(   '$novel_production'(A, 235), !,
	    '$extend_history'(A, 235),
	    arg(2, A, F),
	    setarg(2, A, active),
	    arg(4, A, D),
	    E is D+1,
	    setarg(4, A, E),
	    (   F==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, G),
		term_variables(G, H),
		'chr none_locked'(H),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			    I),
		  J=[A|I],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			   J),
		  (   I=[K|_]
		  ->  setarg(5, K, J)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_ground/1___1'(H, A)
	    ;   true
	    ),
	    'known/1_1_$special_nonvar/1'(B),
	    (   A=suspension(_, active, _, E, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_ground/1___1__1'(B, A)
	    ;   true
	    )
	;   'known/1_1_$special_ground/1___1__1'(B, A)
	).
'known/1_1_$special_ground/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_ground/1___1__1__0__7'(D, A, E).
'known/1_1_$special_ground/1___1__1__0__7'([], A, B) :-
	'known/1_1_$special_ground/1___1__2'(A, B).
'known/1_1_$special_ground/1___1__1__0__7'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=ground(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(4, M, N),
		O is N+1,
		setarg(4, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(5, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_ground/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, _, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_ground/1___1__1__0__7'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_ground/1___1__1__0__7'(W, E, M)
	).
'known/1_1_$special_ground/1___1__1'(A, B) :-
	'known/1_1_$special_ground/1___1__2'(A, B).
'known/1_1_$special_ground/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_ground/1___1__2__0__8'(D, A, E).
'known/1_1_$special_ground/1___1__2__0__8'([], A, B) :-
	'known/1_1_$special_ground/1___1__3'(A, B).
'known/1_1_$special_ground/1___1__2__0__8'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=ground(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(4, N, O),
		P is O+1,
		setarg(4, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(5, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_ground/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, _, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_ground/1___1__2__0__8'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_ground/1___1__2__0__8'(X, F, N)
	).
'known/1_1_$special_ground/1___1__2'(A, B) :-
	'known/1_1_$special_ground/1___1__3'(A, B).
'known/1_1_$special_ground/1___1__3'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(5, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_ground/1___1'(F, A)
	;   true
	).
'known/1_1_$special_integer/1'(A) :-
	'known/1_1_$special_integer/1___1__0'(A, _).
'known/1_1_$special_integer/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(5, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(5, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(5, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_integer/1___1'(J, G)
	    )
	).
'known/1_1_$special_integer/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(5, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(5, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(5, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_integer/1___1'(F, C)
	    )
	).
'known/1_1_$special_integer/1___1__0'(A, B) :-
	nonvar(A),
	\+ integer(A), !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, _, D),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  E=[]
	    ;   term_variables(D, E),
		( arg(5, B, F),
		  (   var(F)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
				G),
		      G=[_|H],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			       H),
		      (   H=[I|_]
		      ->  setarg(5, I, _)
		      ;   true
		      )
		  ;   F=[_, _|H],
		      setarg(2, F, H),
		      (   H=[I|_]
		      ->  setarg(5, I, F)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_integer/1___1'(E, B)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_integer/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	(   '$novel_production'(A, 199), !,
	    '$extend_history'(A, 199),
	    arg(2, A, F),
	    setarg(2, A, active),
	    arg(4, A, D),
	    E is D+1,
	    setarg(4, A, E),
	    (   F==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, G),
		term_variables(G, H),
		'chr none_locked'(H),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			    I),
		  J=[A|I],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			   J),
		  (   I=[K|_]
		  ->  setarg(5, K, J)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_integer/1___1'(H, A)
	    ;   true
	    ),
	    'known/1_1_$special_number/1'(B),
	    (   A=suspension(_, active, _, E, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_integer/1___1__1'(B, A)
	    ;   true
	    )
	;   'known/1_1_$special_integer/1___1__1'(B, A)
	).
'known/1_1_$special_integer/1___1__1'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=integer(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(5, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(5, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(5, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_integer/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_integer/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_integer/1___1__1__0__8'(D, A, E).
'known/1_1_$special_integer/1___1__1__0__8'([], A, B) :-
	'known/1_1_$special_integer/1___1__2'(A, B).
'known/1_1_$special_integer/1___1__1__0__8'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=integer(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(4, M, N),
		O is N+1,
		setarg(4, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(5, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_integer/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, _, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_integer/1___1__1__0__8'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_integer/1___1__1__0__8'(W, E, M)
	).
'known/1_1_$special_integer/1___1__1'(A, B) :-
	'known/1_1_$special_integer/1___1__2'(A, B).
'known/1_1_$special_integer/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_integer/1___1__2__0__9'(D, A, E).
'known/1_1_$special_integer/1___1__2__0__9'([], A, B) :-
	'known/1_1_$special_integer/1___1__3'(A, B).
'known/1_1_$special_integer/1___1__2__0__9'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=integer(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(4, N, O),
		P is O+1,
		setarg(4, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(5, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_integer/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, _, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_integer/1___1__2__0__9'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_integer/1___1__2__0__9'(X, F, N)
	).
'known/1_1_$special_integer/1___1__2'(A, B) :-
	'known/1_1_$special_integer/1___1__3'(A, B).
'known/1_1_$special_integer/1___1__3'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(5, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_integer/1___1'(F, A)
	;   true
	).
'known/1_1_$special_float/1'(A) :-
	'known/1_1_$special_float/1___1__0'(A, _).
'known/1_1_$special_float/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(5, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(5, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(5, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_float/1___1'(J, G)
	    )
	).
'known/1_1_$special_float/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(5, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(5, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(5, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_float/1___1'(F, C)
	    )
	).
'known/1_1_$special_float/1___1__0'(A, B) :-
	nonvar(A),
	\+ float(A), !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, _, D),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  E=[]
	    ;   term_variables(D, E),
		( arg(5, B, F),
		  (   var(F)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
				G),
		      G=[_|H],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			       H),
		      (   H=[I|_]
		      ->  setarg(5, I, _)
		      ;   true
		      )
		  ;   F=[_, _|H],
		      setarg(2, F, H),
		      (   H=[I|_]
		      ->  setarg(5, I, F)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_float/1___1'(E, B)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_float/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	(   '$novel_production'(A, 200), !,
	    '$extend_history'(A, 200),
	    arg(2, A, F),
	    setarg(2, A, active),
	    arg(4, A, D),
	    E is D+1,
	    setarg(4, A, E),
	    (   F==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, G),
		term_variables(G, H),
		'chr none_locked'(H),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			    I),
		  J=[A|I],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			   J),
		  (   I=[K|_]
		  ->  setarg(5, K, J)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_float/1___1'(H, A)
	    ;   true
	    ),
	    'known/1_1_$special_number/1'(B),
	    (   A=suspension(_, active, _, E, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_float/1___1__1'(B, A)
	    ;   true
	    )
	;   'known/1_1_$special_float/1___1__1'(B, A)
	).
'known/1_1_$special_float/1___1__1'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=float(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(5, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(5, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(5, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_float/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_float/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_float/1___1__1__0__8'(D, A, E).
'known/1_1_$special_float/1___1__1__0__8'([], A, B) :-
	'known/1_1_$special_float/1___1__2'(A, B).
'known/1_1_$special_float/1___1__1__0__8'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=float(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(4, M, N),
		O is N+1,
		setarg(4, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(5, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_float/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, _, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_float/1___1__1__0__8'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_float/1___1__1__0__8'(W, E, M)
	).
'known/1_1_$special_float/1___1__1'(A, B) :-
	'known/1_1_$special_float/1___1__2'(A, B).
'known/1_1_$special_float/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_float/1___1__2__0__9'(D, A, E).
'known/1_1_$special_float/1___1__2__0__9'([], A, B) :-
	'known/1_1_$special_float/1___1__3'(A, B).
'known/1_1_$special_float/1___1__2__0__9'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=float(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(4, N, O),
		P is O+1,
		setarg(4, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(5, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_float/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, _, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_float/1___1__2__0__9'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_float/1___1__2__0__9'(X, F, N)
	).
'known/1_1_$special_float/1___1__2'(A, B) :-
	'known/1_1_$special_float/1___1__3'(A, B).
'known/1_1_$special_float/1___1__3'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(5, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_float/1___1'(F, A)
	;   true
	).
'known/1_1_$special_number/1'(A) :-
	'known/1_1_$special_number/1___1__0'(A, _).
'known/1_1_$special_number/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(5, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(5, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(5, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_number/1___1'(J, G)
	    )
	).
'known/1_1_$special_number/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(5, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(5, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(5, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_number/1___1'(F, C)
	    )
	).
'known/1_1_$special_number/1___1__0'(A, B) :-
	nonvar(A),
	\+ number(A), !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, _, D),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  E=[]
	    ;   term_variables(D, E),
		( arg(5, B, F),
		  (   var(F)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
				G),
		      G=[_|H],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			       H),
		      (   H=[I|_]
		      ->  setarg(5, I, _)
		      ;   true
		      )
		  ;   F=[_, _|H],
		      setarg(2, F, H),
		      (   H=[I|_]
		      ->  setarg(5, I, F)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_number/1___1'(E, B)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_number/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F=number(G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(5, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(5, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(5, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_number/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_number/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	(   '$novel_production'(A, 238), !,
	    '$extend_history'(A, 238),
	    arg(2, A, F),
	    setarg(2, A, active),
	    arg(4, A, D),
	    E is D+1,
	    setarg(4, A, E),
	    (   F==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, G),
		term_variables(G, H),
		'chr none_locked'(H),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			    I),
		  J=[A|I],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			   J),
		  (   I=[K|_]
		  ->  setarg(5, K, J)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_number/1___1'(H, A)
	    ;   true
	    ),
	    'known/1_1_$special_nonvar/1'(B),
	    (   A=suspension(_, active, _, E, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_number/1___1__1'(B, A)
	    ;   true
	    )
	;   'known/1_1_$special_number/1___1__1'(B, A)
	).
'known/1_1_$special_number/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_number/1___1__1__0__8'(D, A, E).
'known/1_1_$special_number/1___1__1__0__8'([], A, B) :-
	'known/1_1_$special_number/1___1__2'(A, B).
'known/1_1_$special_number/1___1__1__0__8'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=number(D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(4, M, N),
		O is N+1,
		setarg(4, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(5, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_number/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, _, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_number/1___1__1__0__8'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_number/1___1__1__0__8'(W, E, M)
	).
'known/1_1_$special_number/1___1__1'(A, B) :-
	'known/1_1_$special_number/1___1__2'(A, B).
'known/1_1_$special_number/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_number/1___1__2__0__9'(D, A, E).
'known/1_1_$special_number/1___1__2__0__9'([], A, B) :-
	'known/1_1_$special_number/1___1__3'(A, B).
'known/1_1_$special_number/1___1__2__0__9'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=number(E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(4, N, O),
		P is O+1,
		setarg(4, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(5, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_number/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, _, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_number/1___1__2__0__9'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_number/1___1__2__0__9'(X, F, N)
	).
'known/1_1_$special_number/1___1__2'(A, B) :-
	'known/1_1_$special_number/1___1__3'(A, B).
'known/1_1_$special_number/1___1__3'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(5, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_number/1___1'(F, A)
	;   true
	).
'known/1_1_$special_=\\=/2'(A, B) :-
	'known/1_1_$special_=\\=/2___2__0'(A, B, _).
'known/1_1_$special_=\\=/2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(5, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=\\=/2___2'(M, I)
	    )
	).
'known/1_1_$special_=\\=/2___2__0'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=\\=/2___2'(G, C)
	    )
	).
'known/1_1_$special_=\\=/2___2__0'(F, A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		      D)
	), !,
	(   var(E)
	->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
	    'chr gen_id'(G)
	;   true
	),
	'known/1_1_$special_=\\=/2___2__0__0__5'(D, F, A, E).
'known/1_1_$special_=\\=/2___2__0__0__5'([], A, B, C) :-
	'known/1_1_$special_=\\=/2___2__1'(A, B, C).
'known/1_1_$special_=\\=/2___2__0__0__5'([A|H], I, C, J) :-
	(   ( A=suspension(_, active, _, _, _, B, D),
	      B==C
	    ),
	    (   'chr newvia_2'(C, D, E)
	    ->  get_attr(E, guard_entailment, F),
		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			  G)
	    )
	->  'known/1_1_$special_=\\=/2___2__0__1__5'(G, D, A, H, I, C, J)
	;   'known/1_1_$special_=\\=/2___2__0__0__5'(H, I, C, J)
	).
'known/1_1_$special_=\\=/2___2__0__1__5'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=\\=/2___2__0__0__5'(A, B, C, D).
'known/1_1_$special_=\\=/2___2__0__1__5'([A|J], E, K, L, F, C, M) :-
	(   ( A=suspension(_, active, _, _, _, B, D),
	      B==C,
	      D==E
	    ),
	    (   'chr newvia_2'(F, C, G)
	    ->  get_attr(G, guard_entailment, H),
		H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			  I)
	    )
	->  'known/1_1_$special_=\\=/2___2__0__2__5'(I, A, J, E, K, L, F, C, M)
	;   'known/1_1_$special_=\\=/2___2__0__1__5'(J, E, K, L, F, C, M)
	).
'known/1_1_$special_=\\=/2___2__0__2__5'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=\\=/2___2__0__1__5'(A, B, C, D, E, F, G).
'known/1_1_$special_=\\=/2___2__0__2__5'([A|T], B, U, S, H, V, D, F, G) :-
	(   A=suspension(_, active, _, _, _, C, E),
	    A\==B,
	    ( C==D,
	      E==F
	    ),
	    I=t(188, A, G, B, H),
	    '$novel_production'(A, I),
	    '$novel_production'(G, I),
	    '$novel_production'(B, I),
	    '$novel_production'(H, I)
	->  '$extend_history'(G, I),
	    ( arg(2, G, L),
	      setarg(2, G, active),
	      ( arg(4, G, J),
		K is J+1,
		setarg(4, G, K)
	      ),
	      (   L==not_stored_yet
	      ->  G=suspension(_, _, _, _, _, M, N),
		  term_variables(term(M, N), O),
		  'chr none_locked'(O),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			      P),
		    Q=[G|P],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			     Q),
		    (   P=[R|_]
		    ->  setarg(5, R, Q)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=\\=/2___2'(O, G)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=\\=/2'(D, S),
	    (   G=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, G, inactive),
		'known/1_1_$special_=\\=/2___2__0__2__5'(T,
							 B,
							 U,
							 S,
							 H,
							 V,
							 D,
							 F,
							 G)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2___2__0__2__5'(T, B, U, S, H, V, D, F, G)
	).
'known/1_1_$special_=\\=/2___2__0'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	'known/1_1_$special_=\\=/2___2__1'(B, C, A).
'known/1_1_$special_=\\=/2___2__1'(A, E, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      D)
	), !,
	'known/1_1_$special_=\\=/2___2__1__0__6'(D, A, E, F).
'known/1_1_$special_=\\=/2___2__1__0__6'([], A, B, C) :-
	'known/1_1_$special_=\\=/2___2__2'(A, B, C).
'known/1_1_$special_=\\=/2___2__1__0__6'([A|I], C, D, J) :-
	(   ( A=suspension(_, active, _, _, _, H, B),
	      B==C
	    ),
	    (   'chr newvia_2'(C, D, E)
	    ->  get_attr(E, guard_entailment, F),
		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			  G)
	    )
	->  'known/1_1_$special_=\\=/2___2__1__1__6'(G, H, A, I, C, D, J)
	;   'known/1_1_$special_=\\=/2___2__1__0__6'(I, C, D, J)
	).
'known/1_1_$special_=\\=/2___2__1__1__6'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=\\=/2___2__1__0__6'(A, B, C, D).
'known/1_1_$special_=\\=/2___2__1__1__6'([A|K], G, B, L, D, F, M) :-
	(   ( A=suspension(_, active, _, _, _, C, E),
	      A\==B,
	      C==D,
	      E==F
	    ),
	    (   'chr newvia_2'(G, D, H)
	    ->  get_attr(H, guard_entailment, I),
		I=v(_, _, _, _, _, _, _, _, _, _, _, _, _, J, _, _, _, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			  J)
	    )
	->  'known/1_1_$special_=\\=/2___2__1__2__6'(J, A, K, G, B, L, D, F, M)
	;   'known/1_1_$special_=\\=/2___2__1__1__6'(K, G, B, L, D, F, M)
	).
'known/1_1_$special_=\\=/2___2__1__2__6'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=\\=/2___2__1__1__6'(A, B, C, D, E, F, G).
'known/1_1_$special_=\\=/2___2__1__2__6'([A|T], G, U, C, F, V, E, S, H) :-
	(   A=suspension(_, active, _, _, _, B, D),
	    ( B==C,
	      D==E
	    ),
	    I=t(188, F, A, G, H),
	    '$novel_production'(F, I),
	    '$novel_production'(A, I),
	    '$novel_production'(G, I),
	    '$novel_production'(H, I)
	->  '$extend_history'(H, I),
	    ( arg(2, H, L),
	      setarg(2, H, active),
	      ( arg(4, H, J),
		K is J+1,
		setarg(4, H, K)
	      ),
	      (   L==not_stored_yet
	      ->  H=suspension(_, _, _, _, _, M, N),
		  term_variables(term(M, N), O),
		  'chr none_locked'(O),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			      P),
		    Q=[H|P],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			     Q),
		    (   P=[R|_]
		    ->  setarg(5, R, Q)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=\\=/2___2'(O, H)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=\\=/2'(C, S),
	    (   H=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, H, inactive),
		'known/1_1_$special_=\\=/2___2__1__2__6'(T,
							 G,
							 U,
							 C,
							 F,
							 V,
							 E,
							 S,
							 H)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2___2__1__2__6'(T, G, U, C, F, V, E, S, H)
	).
'known/1_1_$special_=\\=/2___2__1'(A, B, C) :-
	'known/1_1_$special_=\\=/2___2__2'(A, B, C).
'known/1_1_$special_=\\=/2___2__2'(B, A, C) :-
	number(A),
	number(B),
	B=:=A, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=\\=/2___2'(G, C)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=\\=/2___2__2'(B, A, C) :-
	A==B, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=\\=/2___2'(G, C)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=\\=/2___2__2'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	F=suspension(_, _, _, _, _, I, J),
	setarg(2, F, removed),
	term_variables(term(I, J), O),
	arg(5, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		     M),
	    (   M=[N|_]
	    ->  setarg(5, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(5, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_=:=/2___2'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=\\=/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=\\=/2___2__2'(L, K, A) :-
	'$novel_production'(A, 195), !,
	'$extend_history'(A, 195),
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_=\\=/2___2'(G, A)
	;   true
	),
	'known/1_1_$special_=\\=/2'(K, L),
	(   A=suspension(_, active, _, C, _, _, _)
	->  setarg(2, A, inactive),
	    'known/1_1_$special_=\\=/2___2__3'(L, K, A)
	;   true
	).
'known/1_1_$special_=\\=/2___2__2'(A, B, C) :-
	'known/1_1_$special_=\\=/2___2__3'(A, B, C).
'known/1_1_$special_=\\=/2___2__3'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H=\=I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=\\=/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=\\=/2___2__3'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_=\\=/2___2__3__0__12'(E, A, B, F).
'known/1_1_$special_=\\=/2___2__3__0__12'([], A, B, C) :-
	'known/1_1_$special_=\\=/2___2__4'(A, B, C).
'known/1_1_$special_=\\=/2___2__3__0__12'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D=\=F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(4, O, P),
		Q is P+1,
		setarg(4, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(5, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=\\=/2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, _, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_=\\=/2___2__3__0__12'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2___2__3__0__12'(Z, E, G, O)
	).
'known/1_1_$special_=\\=/2___2__3'(A, B, C) :-
	'known/1_1_$special_=\\=/2___2__4'(A, B, C).
'known/1_1_$special_=\\=/2___2__4'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_=\\=/2___2__4__0__13'(E, A, B, F).
'known/1_1_$special_=\\=/2___2__4__0__13'([], A, B, C) :-
	'known/1_1_$special_=\\=/2___2__5'(A, B, C).
'known/1_1_$special_=\\=/2___2__4__0__13'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E=\=G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(4, P, Q),
		R is Q+1,
		setarg(4, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(5, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=\\=/2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, _, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_=\\=/2___2__4__0__13'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2___2__4__0__13'(A1, F, H, P)
	).
'known/1_1_$special_=\\=/2___2__4'(A, B, C) :-
	'known/1_1_$special_=\\=/2___2__5'(A, B, C).
'known/1_1_$special_=\\=/2___2__5'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_=\\=/2___2'(G, A)
	;   true
	).
'known/1_1_$special_\\+/1'(A) :-
	'known/1_1_$special_\\+/1___1__0'(A, _).
'known/1_1_$special_\\+/1___1__0'(A, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	(   var(G)
	->  true
	;   G=suspension(_, H, _, _, I),
	    setarg(2, G, removed),
	    (   H==not_stored_yet
	    ->  J=[]
	    ;   term_variables(I, J),
		( arg(4, G, K),
		  (   var(K)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				L),
		      L=[_|M],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			       M),
		      (   M=[N|_]
		      ->  setarg(4, N, _)
		      ;   true
		      )
		  ;   K=[_, _|M],
		      setarg(2, K, M),
		      (   M=[N|_]
		      ->  setarg(4, N, K)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\+/1___1'(J, G)
	    )
	).
'known/1_1_$special_\\+/1___1__0'(_, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  F=[]
	    ;   term_variables(E, F),
		( arg(4, C, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\+/1___1'(F, C)
	    )
	).
'known/1_1_$special_\\+/1___1__0'(A, E) :-
	nonvar(A),
	(   (   (   (   (   (   (   (   (   (   (   A=functor(B, C, D),
						    nonvar(B),
						    'chr lock'(B),
						    'chr lock'(C),
						    'chr lock'(D),
						    functor(B, C, D),
						    'chr unlock'(B),
						    'chr unlock'(C),
						    'chr unlock'(D), !,
						    (   var(E)
						    ->  true
						    ;   E=suspension(_, F, _, _, G),
							setarg(2, E, removed),
							(   F==not_stored_yet
							->  H=[]
							;   term_variables(G,
									   H),
							    ( arg(4, E, I),
							      (   var(I)
							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
									    J),
								  J=[_|K],
								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
									   K),
								  (   K=[L|_]
								  ->  setarg(4, L, _)
								  ;   true
								  )
							      ;   I=[_, _|K],
								  setarg(2, I, K),
								  (   K=[L|_]
								  ->  setarg(4, L, I)
								  ;   true
								  )
							      )
							    ),
							    'detach_known/1_1_$special_\\+/1___1'(H,
												  E)
							)
						    ),
						    'known/1_1_$special_fail/0'
						;   A= (M;N),
						    (   'chr newvia_2'(M, N, O)
						    ->  get_attr(O,
								 guard_entailment,
								 P),
							P=v(_, _, _, Q, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
						    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								  Q)
						    ),
						    'chr sbag_member'(R, Q),
						    R=suspension(_, active, _, _, S, T),
						    S==M,
						    T==N, !,
						    R=suspension(_, _, _, _, U, V),
						    setarg(2, R, removed),
						    term_variables(term(U, V),
								   A1),
						    arg(4, R, W),
						    (   var(W)
						    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								  X),
							X=[_|Y],
							b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
								 Y),
							(   Y=[Z|_]
							->  setarg(4, Z, _)
							;   true
							)
						    ;   W=[_, _|Y],
							setarg(2, W, Y),
							(   Y=[Z|_]
							->  setarg(4, Z, W)
							;   true
							)
						    ),
						    'detach_known/1_1_$special_;/2___2'(A1,
											R),
						    (   var(E)
						    ->  true
						    ;   E=suspension(_, B1, _, _, C1),
							setarg(2, E, removed),
							(   B1==not_stored_yet
							->  D1=[]
							;   term_variables(C1,
									   D1),
							    ( arg(4, E, E1),
							      (   var(E1)
							      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
									    F1),
								  F1=[_|G1],
								  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
									   G1),
								  (   G1=[H1|_]
								  ->  setarg(4, H1, _)
								  ;   true
								  )
							      ;   E1=[_, _|G1],
								  setarg(2, E1, G1),
								  (   G1=[H1|_]
								  ->  setarg(4, H1, E1)
								  ;   true
								  )
							      )
							    ),
							    'detach_known/1_1_$special_\\+/1___1'(D1,
												  E)
							)
						    ),
						    'known/1_1_$special_fail/0'
						)
					    ;   A=nonvar(I1),
						(   'chr newvia_1'(I1, J1)
						->  get_attr(J1,
							     guard_entailment,
							     K1),
						    K1=v(_, _, _, _, L1, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
						;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
							      L1)
						),
						'chr sbag_member'(M1, L1),
						M1=suspension(_, active, _, _, N1),
						N1==I1, !,
						M1=suspension(_, _, _, _, O1),
						setarg(2, M1, removed),
						term_variables(O1, T1),
						arg(4, M1, P1),
						(   var(P1)
						->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
							      Q1),
						    Q1=[_|R1],
						    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
							     R1),
						    (   R1=[S1|_]
						    ->  setarg(4, S1, _)
						    ;   true
						    )
						;   P1=[_, _|R1],
						    setarg(2, P1, R1),
						    (   R1=[S1|_]
						    ->  setarg(4, S1, P1)
						    ;   true
						    )
						),
						'detach_known/1_1_$special_nonvar/1___1'(T1,
											 M1),
						(   var(E)
						->  true
						;   E=suspension(_, U1, _, _, V1),
						    setarg(2, E, removed),
						    (   U1==not_stored_yet
						    ->  W1=[]
						    ;   term_variables(V1, W1),
							( arg(4, E, X1),
							  (   var(X1)
							  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
									Y1),
							      Y1=[_|Z1],
							      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
								       Z1),
							      (   Z1=[A2|_]
							      ->  setarg(4, A2, _)
							      ;   true
							      )
							  ;   X1=[_, _|Z1],
							      setarg(2, X1, Z1),
							      (   Z1=[A2|_]
							      ->  setarg(4, A2, X1)
							      ;   true
							      )
							  )
							),
							'detach_known/1_1_$special_\\+/1___1'(W1,
											      E)
						    )
						),
						'known/1_1_$special_fail/0'
					    )
					;   A=var(B2),
					    (   'chr newvia_1'(B2, C2)
					    ->  get_attr(C2,
							 guard_entailment,
							 D2),
						D2=v(_, _, _, _, _, E2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
					    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
							  E2)
					    ),
					    'chr sbag_member'(F2, E2),
					    F2=suspension(_, active, _, _, G2),
					    G2==B2, !,
					    F2=suspension(_, _, _, _, H2),
					    setarg(2, F2, removed),
					    term_variables(H2, M2),
					    arg(4, F2, I2),
					    (   var(I2)
					    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
							  J2),
						J2=[_|K2],
						b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
							 K2),
						(   K2=[L2|_]
						->  setarg(4, L2, _)
						;   true
						)
					    ;   I2=[_, _|K2],
						setarg(2, I2, K2),
						(   K2=[L2|_]
						->  setarg(4, L2, I2)
						;   true
						)
					    ),
					    'detach_known/1_1_$special_var/1___1'(M2,
										  F2),
					    (   var(E)
					    ->  true
					    ;   E=suspension(_, N2, _, _, O2),
						setarg(2, E, removed),
						(   N2==not_stored_yet
						->  P2=[]
						;   term_variables(O2, P2),
						    ( arg(4, E, Q2),
						      (   var(Q2)
						      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
								    R2),
							  R2=[_|S2],
							  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
								   S2),
							  (   S2=[T2|_]
							  ->  setarg(4, T2, _)
							  ;   true
							  )
						      ;   Q2=[_, _|S2],
							  setarg(2, Q2, S2),
							  (   S2=[T2|_]
							  ->  setarg(4, T2, Q2)
							  ;   true
							  )
						      )
						    ),
						    'detach_known/1_1_$special_\\+/1___1'(P2,
											  E)
						)
					    ),
					    'known/1_1_$special_fail/0'
					)
				    ;   A=atom(U2),
					(   'chr newvia_1'(U2, V2)
					->  get_attr(V2, guard_entailment, W2),
					    W2=v(_, _, _, _, _, _, X2, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
					;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
						      X2)
					),
					'chr sbag_member'(Y2, X2),
					Y2=suspension(_, active, _, _, _, Z2),
					Z2==U2, !,
					Y2=suspension(_, _, _, _, _, A3),
					setarg(2, Y2, removed),
					term_variables(A3, F3),
					arg(5, Y2, B3),
					(   var(B3)
					->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
						      C3),
					    C3=[_|D3],
					    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
						     D3),
					    (   D3=[E3|_]
					    ->  setarg(5, E3, _)
					    ;   true
					    )
					;   B3=[_, _|D3],
					    setarg(2, B3, D3),
					    (   D3=[E3|_]
					    ->  setarg(5, E3, B3)
					    ;   true
					    )
					),
					'detach_known/1_1_$special_atom/1___1'(F3,
									       Y2),
					(   var(E)
					->  true
					;   E=suspension(_, G3, _, _, H3),
					    setarg(2, E, removed),
					    (   G3==not_stored_yet
					    ->  I3=[]
					    ;   term_variables(H3, I3),
						( arg(4, E, J3),
						  (   var(J3)
						  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
								K3),
						      K3=[_|L3],
						      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							       L3),
						      (   L3=[M3|_]
						      ->  setarg(4, M3, _)
						      ;   true
						      )
						  ;   J3=[_, _|L3],
						      setarg(2, J3, L3),
						      (   L3=[M3|_]
						      ->  setarg(4, M3, J3)
						      ;   true
						      )
						  )
						),
						'detach_known/1_1_$special_\\+/1___1'(I3,
										      E)
					    )
					),
					'known/1_1_$special_fail/0'
				    )
				;   A=atomic(N3),
				    (   'chr newvia_1'(N3, O3)
				    ->  get_attr(O3, guard_entailment, P3),
					P3=v(_, _, _, _, _, _, _, Q3, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
						  Q3)
				    ),
				    'chr sbag_member'(R3, Q3),
				    R3=suspension(_, active, _, _, _, S3),
				    S3==N3, !,
				    R3=suspension(_, _, _, _, _, T3),
				    setarg(2, R3, removed),
				    term_variables(T3, Y3),
				    arg(5, R3, U3),
				    (   var(U3)
				    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
						  V3),
					V3=[_|W3],
					b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
						 W3),
					(   W3=[X3|_]
					->  setarg(5, X3, _)
					;   true
					)
				    ;   U3=[_, _|W3],
					setarg(2, U3, W3),
					(   W3=[X3|_]
					->  setarg(5, X3, U3)
					;   true
					)
				    ),
				    'detach_known/1_1_$special_atomic/1___1'(Y3,
									     R3),
				    (   var(E)
				    ->  true
				    ;   E=suspension(_, Z3, _, _, A4),
					setarg(2, E, removed),
					(   Z3==not_stored_yet
					->  B4=[]
					;   term_variables(A4, B4),
					    ( arg(4, E, C4),
					      (   var(C4)
					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							    D4),
						  D4=[_|E4],
						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							   E4),
						  (   E4=[F4|_]
						  ->  setarg(4, F4, _)
						  ;   true
						  )
					      ;   C4=[_, _|E4],
						  setarg(2, C4, E4),
						  (   E4=[F4|_]
						  ->  setarg(4, F4, C4)
						  ;   true
						  )
					      )
					    ),
					    'detach_known/1_1_$special_\\+/1___1'(B4,
										  E)
					)
				    ),
				    'known/1_1_$special_fail/0'
				)
			    ;   A=compound(G4),
				(   'chr newvia_1'(G4, H4)
				->  get_attr(H4, guard_entailment, I4),
				    I4=v(_, _, _, _, _, _, _, _, J4, _, _, _, _, _, _, _, _, _, _, _, _, _)
				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
					      J4)
				),
				'chr sbag_member'(K4, J4),
				K4=suspension(_, active, _, _, _, L4),
				L4==G4, !,
				K4=suspension(_, _, _, _, _, M4),
				setarg(2, K4, removed),
				term_variables(M4, R4),
				arg(5, K4, N4),
				(   var(N4)
				->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
					      O4),
				    O4=[_|P4],
				    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
					     P4),
				    (   P4=[Q4|_]
				    ->  setarg(5, Q4, _)
				    ;   true
				    )
				;   N4=[_, _|P4],
				    setarg(2, N4, P4),
				    (   P4=[Q4|_]
				    ->  setarg(5, Q4, N4)
				    ;   true
				    )
				),
				'detach_known/1_1_$special_compound/1___1'(R4,
									   K4),
				(   var(E)
				->  true
				;   E=suspension(_, S4, _, _, T4),
				    setarg(2, E, removed),
				    (   S4==not_stored_yet
				    ->  U4=[]
				    ;   term_variables(T4, U4),
					( arg(4, E, V4),
					  (   var(V4)
					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							W4),
					      W4=[_|X4],
					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						       X4),
					      (   X4=[Y4|_]
					      ->  setarg(4, Y4, _)
					      ;   true
					      )
					  ;   V4=[_, _|X4],
					      setarg(2, V4, X4),
					      (   X4=[Y4|_]
					      ->  setarg(4, Y4, V4)
					      ;   true
					      )
					  )
					),
					'detach_known/1_1_$special_\\+/1___1'(U4,
									      E)
				    )
				),
				'known/1_1_$special_fail/0'
			    )
			;   A=ground(Z4),
			    (   'chr newvia_1'(Z4, A5)
			    ->  get_attr(A5, guard_entailment, B5),
				B5=v(_, _, _, _, _, _, _, _, _, C5, _, _, _, _, _, _, _, _, _, _, _, _)
			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
					  C5)
			    ),
			    'chr sbag_member'(D5, C5),
			    D5=suspension(_, active, _, _, _, E5),
			    E5==Z4, !,
			    D5=suspension(_, _, _, _, _, F5),
			    setarg(2, D5, removed),
			    term_variables(F5, K5),
			    arg(5, D5, G5),
			    (   var(G5)
			    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
					  H5),
				H5=[_|I5],
				b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
					 I5),
				(   I5=[J5|_]
				->  setarg(5, J5, _)
				;   true
				)
			    ;   G5=[_, _|I5],
				setarg(2, G5, I5),
				(   I5=[J5|_]
				->  setarg(5, J5, G5)
				;   true
				)
			    ),
			    'detach_known/1_1_$special_ground/1___1'(K5, D5),
			    (   var(E)
			    ->  true
			    ;   E=suspension(_, L5, _, _, M5),
				setarg(2, E, removed),
				(   L5==not_stored_yet
				->  N5=[]
				;   term_variables(M5, N5),
				    ( arg(4, E, O5),
				      (   var(O5)
				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						    P5),
					  P5=[_|Q5],
					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						   Q5),
					  (   Q5=[R5|_]
					  ->  setarg(4, R5, _)
					  ;   true
					  )
				      ;   O5=[_, _|Q5],
					  setarg(2, O5, Q5),
					  (   Q5=[R5|_]
					  ->  setarg(4, R5, O5)
					  ;   true
					  )
				      )
				    ),
				    'detach_known/1_1_$special_\\+/1___1'(N5, E)
				)
			    ),
			    'known/1_1_$special_fail/0'
			)
		    ;   A=integer(S5),
			(   'chr newvia_1'(S5, T5)
			->  get_attr(T5, guard_entailment, U5),
			    U5=v(_, _, _, _, _, _, _, _, _, _, V5, _, _, _, _, _, _, _, _, _, _, _)
			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
				      V5)
			),
			'chr sbag_member'(W5, V5),
			W5=suspension(_, active, _, _, _, X5),
			X5==S5, !,
			W5=suspension(_, _, _, _, _, Y5),
			setarg(2, W5, removed),
			term_variables(Y5, D6),
			arg(5, W5, Z5),
			(   var(Z5)
			->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
				      A6),
			    A6=[_|B6],
			    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
				     B6),
			    (   B6=[C6|_]
			    ->  setarg(5, C6, _)
			    ;   true
			    )
			;   Z5=[_, _|B6],
			    setarg(2, Z5, B6),
			    (   B6=[C6|_]
			    ->  setarg(5, C6, Z5)
			    ;   true
			    )
			),
			'detach_known/1_1_$special_integer/1___1'(D6, W5),
			(   var(E)
			->  true
			;   E=suspension(_, E6, _, _, F6),
			    setarg(2, E, removed),
			    (   E6==not_stored_yet
			    ->  G6=[]
			    ;   term_variables(F6, G6),
				( arg(4, E, H6),
				  (   var(H6)
				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						I6),
				      I6=[_|J6],
				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					       J6),
				      (   J6=[K6|_]
				      ->  setarg(4, K6, _)
				      ;   true
				      )
				  ;   H6=[_, _|J6],
				      setarg(2, H6, J6),
				      (   J6=[K6|_]
				      ->  setarg(4, K6, H6)
				      ;   true
				      )
				  )
				),
				'detach_known/1_1_$special_\\+/1___1'(G6, E)
			    )
			),
			'known/1_1_$special_fail/0'
		    )
		;   A=float(L6),
		    (   'chr newvia_1'(L6, M6)
		    ->  get_attr(M6, guard_entailment, N6),
			N6=v(_, _, _, _, _, _, _, _, _, _, _, O6, _, _, _, _, _, _, _, _, _, _)
		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
				  O6)
		    ),
		    'chr sbag_member'(P6, O6),
		    P6=suspension(_, active, _, _, _, Q6),
		    Q6==L6, !,
		    P6=suspension(_, _, _, _, _, R6),
		    setarg(2, P6, removed),
		    term_variables(R6, W6),
		    arg(5, P6, S6),
		    (   var(S6)
		    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
				  T6),
			T6=[_|U6],
			b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
				 U6),
			(   U6=[V6|_]
			->  setarg(5, V6, _)
			;   true
			)
		    ;   S6=[_, _|U6],
			setarg(2, S6, U6),
			(   U6=[V6|_]
			->  setarg(5, V6, S6)
			;   true
			)
		    ),
		    'detach_known/1_1_$special_float/1___1'(W6, P6),
		    (   var(E)
		    ->  true
		    ;   E=suspension(_, X6, _, _, Y6),
			setarg(2, E, removed),
			(   X6==not_stored_yet
			->  Z6=[]
			;   term_variables(Y6, Z6),
			    ( arg(4, E, A7),
			      (   var(A7)
			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					    B7),
				  B7=[_|C7],
				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					   C7),
				  (   C7=[D7|_]
				  ->  setarg(4, D7, _)
				  ;   true
				  )
			      ;   A7=[_, _|C7],
				  setarg(2, A7, C7),
				  (   C7=[D7|_]
				  ->  setarg(4, D7, A7)
				  ;   true
				  )
			      )
			    ),
			    'detach_known/1_1_$special_\\+/1___1'(Z6, E)
			)
		    ),
		    'known/1_1_$special_fail/0'
		)
	    ;   A=number(E7),
		(   'chr newvia_1'(E7, F7)
		->  get_attr(F7, guard_entailment, G7),
		    G7=v(_, _, _, _, _, _, _, _, _, _, _, _, H7, _, _, _, _, _, _, _, _, _)
		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			      H7)
		),
		'chr sbag_member'(I7, H7),
		I7=suspension(_, active, _, _, _, J7),
		J7==E7, !,
		I7=suspension(_, _, _, _, _, K7),
		setarg(2, I7, removed),
		term_variables(K7, P7),
		arg(5, I7, L7),
		(   var(L7)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			      M7),
		    M7=[_|N7],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			     N7),
		    (   N7=[O7|_]
		    ->  setarg(5, O7, _)
		    ;   true
		    )
		;   L7=[_, _|N7],
		    setarg(2, L7, N7),
		    (   N7=[O7|_]
		    ->  setarg(5, O7, L7)
		    ;   true
		    )
		),
		'detach_known/1_1_$special_number/1___1'(P7, I7),
		(   var(E)
		->  true
		;   E=suspension(_, Q7, _, _, R7),
		    setarg(2, E, removed),
		    (   Q7==not_stored_yet
		    ->  S7=[]
		    ;   term_variables(R7, S7),
			( arg(4, E, T7),
			  (   var(T7)
			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					U7),
			      U7=[_|V7],
			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				       V7),
			      (   V7=[W7|_]
			      ->  setarg(4, W7, _)
			      ;   true
			      )
			  ;   T7=[_, _|V7],
			      setarg(2, T7, V7),
			      (   V7=[W7|_]
			      ->  setarg(4, W7, T7)
			      ;   true
			      )
			  )
			),
			'detach_known/1_1_$special_\\+/1___1'(S7, E)
		    )
		),
		'known/1_1_$special_fail/0'
	    )
	;   A= (X7=\=Y7),
	    (   'chr newvia_2'(X7, Y7, Z7)
	    ->  get_attr(Z7, guard_entailment, A8),
		A8=v(_, _, _, _, _, _, _, _, _, _, _, _, _, B8, _, _, _, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			  B8)
	    ),
	    'chr sbag_member'(C8, B8),
	    C8=suspension(_, active, _, _, _, D8, E8),
	    D8==X7,
	    E8==Y7, !,
	    C8=suspension(_, _, _, _, _, F8, G8),
	    setarg(2, C8, removed),
	    term_variables(term(F8, G8), L8),
	    arg(5, C8, H8),
	    (   var(H8)
	    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			  I8),
		I8=[_|J8],
		b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			 J8),
		(   J8=[K8|_]
		->  setarg(5, K8, _)
		;   true
		)
	    ;   H8=[_, _|J8],
		setarg(2, H8, J8),
		(   J8=[K8|_]
		->  setarg(5, K8, H8)
		;   true
		)
	    ),
	    'detach_known/1_1_$special_=\\=/2___2'(L8, C8),
	    (   var(E)
	    ->  true
	    ;   E=suspension(_, M8, _, _, N8),
		setarg(2, E, removed),
		(   M8==not_stored_yet
		->  O8=[]
		;   term_variables(N8, O8),
		    ( arg(4, E, P8),
		      (   var(P8)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				    Q8),
			  Q8=[_|R8],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				   R8),
			  (   R8=[S8|_]
			  ->  setarg(4, S8, _)
			  ;   true
			  )
		      ;   P8=[_, _|R8],
			  setarg(2, P8, R8),
			  (   R8=[S8|_]
			  ->  setarg(4, S8, P8)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_\\+/1___1'(O8, E)
		)
	    ),
	    'known/1_1_$special_fail/0'
	).
'known/1_1_$special_\\+/1___1__0'(A, N) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	nonvar(F),
	F= (\+G),
	G==A, !,
	E=suspension(_, _, _, _, H),
	setarg(2, E, removed),
	term_variables(H, M),
	arg(4, E, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     K),
	    (   K=[L|_]
	    ->  setarg(4, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(4, L, I)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(M, E),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, P),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(P, Q),
		( arg(4, N, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			       T),
		      (   T=[U|_]
		      ->  setarg(4, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(4, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\+/1___1'(Q, N)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_\\+/1___1__0'(A, N) :-
	nonvar(A),
	(   (   (   (   (   (   (   A= (\+B),
				    (   'chr newvia_1'(B, C)
				    ->  get_attr(C, guard_entailment, D),
					D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						  E)
				    ),
				    'chr sbag_member'(F, E),
				    F=suspension(_, active, _, _, G),
				    G==B, !,
				    F=suspension(_, _, _, _, H),
				    setarg(2, F, removed),
				    term_variables(H, M),
				    arg(4, F, I),
				    (   var(I)
				    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						  J),
					J=[_|K],
					b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						 K),
					(   K=[L|_]
					->  setarg(4, L, _)
					;   true
					)
				    ;   I=[_, _|K],
					setarg(2, I, K),
					(   K=[L|_]
					->  setarg(4, L, I)
					;   true
					)
				    ),
				    'detach_known/1_1_$special_\\+/1___1'(M, F),
				    (   var(N)
				    ->  true
				    ;   N=suspension(_, O, _, _, P),
					setarg(2, N, removed),
					(   O==not_stored_yet
					->  Q=[]
					;   term_variables(P, Q),
					    ( arg(4, N, R),
					      (   var(R)
					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							    S),
						  S=[_|T],
						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							   T),
						  (   T=[U|_]
						  ->  setarg(4, U, _)
						  ;   true
						  )
					      ;   R=[_, _|T],
						  setarg(2, R, T),
						  (   T=[U|_]
						  ->  setarg(4, U, R)
						  ;   true
						  )
					      )
					    ),
					    'detach_known/1_1_$special_\\+/1___1'(Q,
										  N)
					)
				    ),
				    'known/1_1_$special_fail/0'
				;   A=functor(V, W, X),
				    (   'chr newvia'([V, W, X], Y)
				    ->  get_attr(Y, guard_entailment, Z),
					Z=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, A1, _, _, _, _, _, _)
				    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
						  A1)
				    ),
				    'chr sbag_member'(B1, A1),
				    B1=suspension(_, active, _, _, C1, D1, E1),
				    C1==V,
				    D1==W,
				    E1==X, !,
				    B1=suspension(_, _, _, _, F1, G1, H1),
				    setarg(2, B1, removed),
				    term_variables(term(F1, G1, H1), M1),
				    arg(4, B1, I1),
				    (   var(I1)
				    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
						  J1),
					J1=[_|K1],
					b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
						 K1),
					(   K1=[L1|_]
					->  setarg(4, L1, _)
					;   true
					)
				    ;   I1=[_, _|K1],
					setarg(2, I1, K1),
					(   K1=[L1|_]
					->  setarg(4, L1, I1)
					;   true
					)
				    ),
				    'detach_known/1_1_$special_functor/3___3'(M1,
									      B1),
				    (   var(N)
				    ->  true
				    ;   N=suspension(_, N1, _, _, O1),
					setarg(2, N, removed),
					(   N1==not_stored_yet
					->  P1=[]
					;   term_variables(O1, P1),
					    ( arg(4, N, Q1),
					      (   var(Q1)
					      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							    R1),
						  R1=[_|S1],
						  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							   S1),
						  (   S1=[T1|_]
						  ->  setarg(4, T1, _)
						  ;   true
						  )
					      ;   Q1=[_, _|S1],
						  setarg(2, Q1, S1),
						  (   S1=[T1|_]
						  ->  setarg(4, T1, Q1)
						  ;   true
						  )
					      )
					    ),
					    'detach_known/1_1_$special_\\+/1___1'(P1,
										  N)
					)
				    ),
				    'known/1_1_$special_fail/0'
				)
			    ;   A= (U1\=V1),
				(   'chr newvia_2'(U1, V1, W1)
				->  get_attr(W1, guard_entailment, X1),
				    X1=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Y1, _, _, _, _, _)
				;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
					      Y1)
				),
				'chr sbag_member'(Z1, Y1),
				Z1=suspension(_, active, _, _, _, A2, B2),
				A2==U1,
				B2==V1, !,
				Z1=suspension(_, _, _, _, _, C2, D2),
				setarg(2, Z1, removed),
				term_variables(term(C2, D2), I2),
				arg(5, Z1, E2),
				(   var(E2)
				->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
					      F2),
				    F2=[_|G2],
				    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
					     G2),
				    (   G2=[H2|_]
				    ->  setarg(5, H2, _)
				    ;   true
				    )
				;   E2=[_, _|G2],
				    setarg(2, E2, G2),
				    (   G2=[H2|_]
				    ->  setarg(5, H2, E2)
				    ;   true
				    )
				),
				'detach_known/1_1_$special_\\=/2___2'(I2, Z1),
				(   var(N)
				->  true
				;   N=suspension(_, J2, _, _, K2),
				    setarg(2, N, removed),
				    (   J2==not_stored_yet
				    ->  L2=[]
				    ;   term_variables(K2, L2),
					( arg(4, N, M2),
					  (   var(M2)
					  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
							N2),
					      N2=[_|O2],
					      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						       O2),
					      (   O2=[P2|_]
					      ->  setarg(4, P2, _)
					      ;   true
					      )
					  ;   M2=[_, _|O2],
					      setarg(2, M2, O2),
					      (   O2=[P2|_]
					      ->  setarg(4, P2, M2)
					      ;   true
					      )
					  )
					),
					'detach_known/1_1_$special_\\+/1___1'(L2,
									      N)
				    )
				),
				'known/1_1_$special_fail/0'
			    )
			;   A= (Q2=R2),
			    (   'chr newvia_2'(Q2, R2, S2)
			    ->  get_attr(S2, guard_entailment, T2),
				T2=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, U2, _, _, _, _)
			    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
					  U2)
			    ),
			    'chr sbag_member'(V2, U2),
			    V2=suspension(_, active, _, _, W2, X2),
			    W2==Q2,
			    X2==R2, !,
			    V2=suspension(_, _, _, _, Y2, Z2),
			    setarg(2, V2, removed),
			    term_variables(term(Y2, Z2), E3),
			    arg(4, V2, A3),
			    (   var(A3)
			    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
					  B3),
				B3=[_|C3],
				b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
					 C3),
				(   C3=[D3|_]
				->  setarg(4, D3, _)
				;   true
				)
			    ;   A3=[_, _|C3],
				setarg(2, A3, C3),
				(   C3=[D3|_]
				->  setarg(4, D3, A3)
				;   true
				)
			    ),
			    'detach_known/1_1_$special_=/2___2'(E3, V2),
			    (   var(N)
			    ->  true
			    ;   N=suspension(_, F3, _, _, G3),
				setarg(2, N, removed),
				(   F3==not_stored_yet
				->  H3=[]
				;   term_variables(G3, H3),
				    ( arg(4, N, I3),
				      (   var(I3)
				      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						    J3),
					  J3=[_|K3],
					  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						   K3),
					  (   K3=[L3|_]
					  ->  setarg(4, L3, _)
					  ;   true
					  )
				      ;   I3=[_, _|K3],
					  setarg(2, I3, K3),
					  (   K3=[L3|_]
					  ->  setarg(4, L3, I3)
					  ;   true
					  )
				      )
				    ),
				    'detach_known/1_1_$special_\\+/1___1'(H3, N)
				)
			    ),
			    'known/1_1_$special_fail/0'
			)
		    ;   A= (M3\==N3),
			(   'chr newvia_2'(M3, N3, O3)
			->  get_attr(O3, guard_entailment, P3),
			    P3=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, Q3, _, _, _)
			;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				      Q3)
			),
			'chr sbag_member'(R3, Q3),
			R3=suspension(_, active, _, _, _, S3, T3),
			S3==M3,
			T3==N3, !,
			R3=suspension(_, _, _, _, _, U3, V3),
			setarg(2, R3, removed),
			term_variables(term(U3, V3), A4),
			arg(5, R3, W3),
			(   var(W3)
			->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				      X3),
			    X3=[_|Y3],
			    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				     Y3),
			    (   Y3=[Z3|_]
			    ->  setarg(5, Z3, _)
			    ;   true
			    )
			;   W3=[_, _|Y3],
			    setarg(2, W3, Y3),
			    (   Y3=[Z3|_]
			    ->  setarg(5, Z3, W3)
			    ;   true
			    )
			),
			'detach_known/1_1_$special_\\==/2___2'(A4, R3),
			(   var(N)
			->  true
			;   N=suspension(_, B4, _, _, C4),
			    setarg(2, N, removed),
			    (   B4==not_stored_yet
			    ->  D4=[]
			    ;   term_variables(C4, D4),
				( arg(4, N, E4),
				  (   var(E4)
				  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
						F4),
				      F4=[_|G4],
				      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					       G4),
				      (   G4=[H4|_]
				      ->  setarg(4, H4, _)
				      ;   true
				      )
				  ;   E4=[_, _|G4],
				      setarg(2, E4, G4),
				      (   G4=[H4|_]
				      ->  setarg(4, H4, E4)
				      ;   true
				      )
				  )
				),
				'detach_known/1_1_$special_\\+/1___1'(D4, N)
			    )
			),
			'known/1_1_$special_fail/0'
		    )
		;   A= (I4==J4),
		    (   'chr newvia_2'(I4, J4, K4)
		    ->  get_attr(K4, guard_entailment, L4),
			L4=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, M4, _, _)
		    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				  M4)
		    ),
		    'chr sbag_member'(N4, M4),
		    N4=suspension(_, active, _, _, _, O4, P4),
		    O4==I4,
		    P4==J4, !,
		    N4=suspension(_, _, _, _, _, Q4, R4),
		    setarg(2, N4, removed),
		    term_variables(term(Q4, R4), W4),
		    arg(5, N4, S4),
		    (   var(S4)
		    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				  T4),
			T4=[_|U4],
			b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				 U4),
			(   U4=[V4|_]
			->  setarg(5, V4, _)
			;   true
			)
		    ;   S4=[_, _|U4],
			setarg(2, S4, U4),
			(   U4=[V4|_]
			->  setarg(5, V4, S4)
			;   true
			)
		    ),
		    'detach_known/1_1_$special_==/2___2'(W4, N4),
		    (   var(N)
		    ->  true
		    ;   N=suspension(_, X4, _, _, Y4),
			setarg(2, N, removed),
			(   X4==not_stored_yet
			->  Z4=[]
			;   term_variables(Y4, Z4),
			    ( arg(4, N, A5),
			      (   var(A5)
			      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					    B5),
				  B5=[_|C5],
				  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					   C5),
				  (   C5=[D5|_]
				  ->  setarg(4, D5, _)
				  ;   true
				  )
			      ;   A5=[_, _|C5],
				  setarg(2, A5, C5),
				  (   C5=[D5|_]
				  ->  setarg(4, D5, A5)
				  ;   true
				  )
			      )
			    ),
			    'detach_known/1_1_$special_\\+/1___1'(Z4, N)
			)
		    ),
		    'known/1_1_$special_fail/0'
		)
	    ;   A= (E5=<F5),
		(   'chr newvia_2'(E5, F5, G5)
		->  get_attr(G5, guard_entailment, H5),
		    H5=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I5, _)
		;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      I5)
		),
		'chr sbag_member'(J5, I5),
		J5=suspension(_, active, _, _, _, K5, L5),
		K5==E5,
		L5==F5, !,
		J5=suspension(_, _, _, _, _, M5, N5),
		setarg(2, J5, removed),
		term_variables(term(M5, N5), S5),
		arg(5, J5, O5),
		(   var(O5)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      P5),
		    P5=[_|Q5],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     Q5),
		    (   Q5=[R5|_]
		    ->  setarg(5, R5, _)
		    ;   true
		    )
		;   O5=[_, _|Q5],
		    setarg(2, O5, Q5),
		    (   Q5=[R5|_]
		    ->  setarg(5, R5, O5)
		    ;   true
		    )
		),
		'detach_known/1_1_$special_=</2___2'(S5, J5),
		(   var(N)
		->  true
		;   N=suspension(_, T5, _, _, U5),
		    setarg(2, N, removed),
		    (   T5==not_stored_yet
		    ->  V5=[]
		    ;   term_variables(U5, V5),
			( arg(4, N, W5),
			  (   var(W5)
			  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
					X5),
			      X5=[_|Y5],
			      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				       Y5),
			      (   Y5=[Z5|_]
			      ->  setarg(4, Z5, _)
			      ;   true
			      )
			  ;   W5=[_, _|Y5],
			      setarg(2, W5, Y5),
			      (   Y5=[Z5|_]
			      ->  setarg(4, Z5, W5)
			      ;   true
			      )
			  )
			),
			'detach_known/1_1_$special_\\+/1___1'(V5, N)
		    )
		),
		'known/1_1_$special_fail/0'
	    )
	;   A= (A6=:=B6),
	    (   'chr newvia_2'(A6, B6, C6)
	    ->  get_attr(C6, guard_entailment, D6),
		D6=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E6)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			  E6)
	    ),
	    'chr sbag_member'(F6, E6),
	    F6=suspension(_, active, _, _, _, G6, H6),
	    G6==A6,
	    H6==B6, !,
	    F6=suspension(_, _, _, _, _, I6, J6),
	    setarg(2, F6, removed),
	    term_variables(term(I6, J6), O6),
	    arg(5, F6, K6),
	    (   var(K6)
	    ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			  L6),
		L6=[_|M6],
		b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			 M6),
		(   M6=[N6|_]
		->  setarg(5, N6, _)
		;   true
		)
	    ;   K6=[_, _|M6],
		setarg(2, K6, M6),
		(   M6=[N6|_]
		->  setarg(5, N6, K6)
		;   true
		)
	    ),
	    'detach_known/1_1_$special_=:=/2___2'(O6, F6),
	    (   var(N)
	    ->  true
	    ;   N=suspension(_, P6, _, _, Q6),
		setarg(2, N, removed),
		(   P6==not_stored_yet
		->  R6=[]
		;   term_variables(Q6, R6),
		    ( arg(4, N, S6),
		      (   var(S6)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				    T6),
			  T6=[_|U6],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				   U6),
			  (   U6=[V6|_]
			  ->  setarg(4, V6, _)
			  ;   true
			  )
		      ;   S6=[_, _|U6],
			  setarg(2, S6, U6),
			  (   U6=[V6|_]
			  ->  setarg(4, V6, S6)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_\\+/1___1'(R6, N)
		)
	    ),
	    'known/1_1_$special_fail/0'
	).
'known/1_1_$special_\\+/1___1__0'(A, M) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		      D)
	),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, _, F),
	F==A, !,
	E=suspension(_, _, _, _, G),
	setarg(2, E, removed),
	term_variables(G, L),
	arg(4, E, H),
	(   var(H)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		      I),
	    I=[_|J],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		     J),
	    (   J=[K|_]
	    ->  setarg(4, K, _)
	    ;   true
	    )
	;   H=[_, _|J],
	    setarg(2, H, J),
	    (   J=[K|_]
	    ->  setarg(4, K, H)
	    ;   true
	    )
	),
	'detach_known/1_1_$default___1'(L, E),
	(   var(M)
	->  true
	;   M=suspension(_, N, _, _, O),
	    setarg(2, M, removed),
	    (   N==not_stored_yet
	    ->  P=[]
	    ;   term_variables(O, P),
		( arg(4, M, Q),
		  (   var(Q)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
				R),
		      R=[_|S],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			       S),
		      (   S=[T|_]
		      ->  setarg(4, T, _)
		      ;   true
		      )
		  ;   Q=[_, _|S],
		      setarg(2, Q, S),
		      (   S=[T|_]
		      ->  setarg(4, T, Q)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\+/1___1'(P, M)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_\\+/1___1__0'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	(   var(E)
	->  E=suspension(F, not_stored_yet, 0, _, A),
	    'chr gen_id'(F)
	;   true
	),
	'known/1_1_$special_\\+/1___1__0__0__33'(D, A, E).
'known/1_1_$special_\\+/1___1__0__0__33'([], A, B) :-
	'known/1_1_$special_\\+/1___1__1'(A, B).
'known/1_1_$special_\\+/1___1__0__0__33'([A|W], E, M) :-
	(   A=suspension(_, active, _, _, B, V),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (\+D),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    ( arg(2, M, P),
	      setarg(2, M, active),
	      ( arg(3, M, N),
		O is N+1,
		setarg(3, M, O)
	      ),
	      (   P==not_stored_yet
	      ->  M=suspension(_, _, _, _, Q),
		  term_variables(Q, R),
		  'chr none_locked'(R),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			      S),
		    T=[M|S],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			     T),
		    (   S=[U|_]
		    ->  setarg(4, U, T)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\+/1___1'(R, M)
	      ;   true
	      )
	    ),
	    known(V),
	    (   M=suspension(_, active, O, _, _)
	    ->  setarg(2, M, inactive),
		'known/1_1_$special_\\+/1___1__0__0__33'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1___1__0__0__33'(W, E, M)
	).
'known/1_1_$special_\\+/1___1__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, 0, _, B),
	    'chr gen_id'(C)
	;   true
	),
	'known/1_1_$special_\\+/1___1__1'(B, A).
'known/1_1_$special_\\+/1___1__1'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_\\+/1___1__1__0__34'(D, A, E).
'known/1_1_$special_\\+/1___1__1__0__34'([], A, B) :-
	'known/1_1_$special_\\+/1___1__2'(A, B).
'known/1_1_$special_\\+/1___1__1__0__34'([A|X], F, N) :-
	(   A=suspension(_, active, _, _, B, W),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (\+E),
	    E==F
	->  ( A=suspension(_, _, _, _, G, H),
	      setarg(2, A, removed),
	      term_variables(term(G, H), M),
	      ( arg(4, A, I),
		(   var(I)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      J),
		    J=[_|K],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     K),
		    (   K=[L|_]
		    ->  setarg(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(M, A)
	    ),
	    ( arg(2, N, Q),
	      setarg(2, N, active),
	      ( arg(3, N, O),
		P is O+1,
		setarg(3, N, P)
	      ),
	      (   Q==not_stored_yet
	      ->  N=suspension(_, _, _, _, R),
		  term_variables(R, S),
		  'chr none_locked'(S),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			      T),
		    U=[N|T],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			     U),
		    (   T=[V|_]
		    ->  setarg(4, V, U)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\+/1___1'(S, N)
	      ;   true
	      )
	    ),
	    known(W),
	    (   N=suspension(_, active, P, _, _)
	    ->  setarg(2, N, inactive),
		'known/1_1_$special_\\+/1___1__1__0__34'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1___1__1__0__34'(X, F, N)
	).
'known/1_1_$special_\\+/1___1__1'(A, B) :-
	'known/1_1_$special_\\+/1___1__2'(A, B).
'known/1_1_$special_\\+/1___1__2'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_\\+/1___1__2__0__35'(D, A, E).
'known/1_1_$special_\\+/1___1__2__0__35'([], A, B) :-
	'known/1_1_$special_\\+/1___1__3'(A, B).
'known/1_1_$special_\\+/1___1__2__0__35'([A|U], C, K) :-
	(   A=suspension(_, active, _, _, B, T),
	    B==C
	->  ( A=suspension(_, _, _, _, D, E),
	      setarg(2, A, removed),
	      term_variables(term(D, E), J),
	      ( arg(4, A, F),
		(   var(F)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      G),
		    G=[_|H],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     H),
		    (   H=[I|_]
		    ->  setarg(4, I, _)
		    ;   true
		    )
		;   F=[_, _|H],
		    setarg(2, F, H),
		    (   H=[I|_]
		    ->  setarg(4, I, F)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(J, A)
	    ),
	    ( arg(2, K, N),
	      setarg(2, K, active),
	      ( arg(3, K, L),
		M is L+1,
		setarg(3, K, M)
	      ),
	      (   N==not_stored_yet
	      ->  K=suspension(_, _, _, _, O),
		  term_variables(O, P),
		  'chr none_locked'(P),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			      Q),
		    R=[K|Q],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			     R),
		    (   Q=[S|_]
		    ->  setarg(4, S, R)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\+/1___1'(P, K)
	      ;   true
	      )
	    ),
	    known(T),
	    (   K=suspension(_, active, M, _, _)
	    ->  setarg(2, K, inactive),
		'known/1_1_$special_\\+/1___1__2__0__35'(U, C, K)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1___1__2__0__35'(U, C, K)
	).
'known/1_1_$special_\\+/1___1__2'(A, B) :-
	'known/1_1_$special_\\+/1___1__3'(A, B).
'known/1_1_$special_\\+/1___1__3'(A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_\\+/1___1__3__0__36'(D, A, E).
'known/1_1_$special_\\+/1___1__3__0__36'([], A, B) :-
	'known/1_1_$special_\\+/1___1__4'(A, B).
'known/1_1_$special_\\+/1___1__3__0__36'([A|V], D, L) :-
	(   A=suspension(_, active, _, _, B, U),
	    nonvar(B),
	    B= (C, _),
	    C==D
	->  ( A=suspension(_, _, _, _, E, F),
	      setarg(2, A, removed),
	      term_variables(term(E, F), K),
	      ( arg(4, A, G),
		(   var(G)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      H),
		    H=[_|I],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     I),
		    (   I=[J|_]
		    ->  setarg(4, J, _)
		    ;   true
		    )
		;   G=[_, _|I],
		    setarg(2, G, I),
		    (   I=[J|_]
		    ->  setarg(4, J, G)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(K, A)
	    ),
	    ( arg(2, L, O),
	      setarg(2, L, active),
	      ( arg(3, L, M),
		N is M+1,
		setarg(3, L, N)
	      ),
	      (   O==not_stored_yet
	      ->  L=suspension(_, _, _, _, P),
		  term_variables(P, Q),
		  'chr none_locked'(Q),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			      R),
		    S=[L|R],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			     S),
		    (   R=[T|_]
		    ->  setarg(4, T, S)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\+/1___1'(Q, L)
	      ;   true
	      )
	    ),
	    known(U),
	    (   L=suspension(_, active, N, _, _)
	    ->  setarg(2, L, inactive),
		'known/1_1_$special_\\+/1___1__3__0__36'(V, D, L)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1___1__3__0__36'(V, D, L)
	).
'known/1_1_$special_\\+/1___1__3'(A, B) :-
	'known/1_1_$special_\\+/1___1__4'(A, B).
'known/1_1_$special_\\+/1___1__4'(_, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(3, A, B),
	C is B+1,
	setarg(3, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, E),
	    term_variables(E, F),
	    'chr none_locked'(F),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			G),
	      H=[A|G],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		       H),
	      (   G=[I|_]
	      ->  setarg(4, I, H)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_\\+/1___1'(F, A)
	;   true
	).
'known/1_1_$special_functor/3'(A, B, C) :-
	'known/1_1_$special_functor/3___3__0'(A, B, C, _).
'known/1_1_$special_functor/3___3__0'(A, B, C, K) :-
	(   'chr newvia'([A, B, C], D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		      F)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, H, I, J),
	H==A,
	I==B,
	J==C, !,
	(   var(K)
	->  true
	;   K=suspension(_, L, _, _, M, N, O),
	    setarg(2, K, removed),
	    (   L==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(M, N, O), P),
		( arg(4, K, Q),
		  (   var(Q)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
				R),
		      R=[_|S],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			       S),
		      (   S=[T|_]
		      ->  setarg(4, T, _)
		      ;   true
		      )
		  ;   Q=[_, _|S],
		      setarg(2, Q, S),
		      (   S=[T|_]
		      ->  setarg(4, T, Q)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_functor/3___3'(P, K)
	    )
	).
'known/1_1_$special_functor/3___3__0'(_, _, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E, F, G),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  H=[]
	    ;   term_variables(term(E, F, G), H),
		( arg(4, C, I),
		  (   var(I)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
				J),
		      J=[_|K],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			       K),
		      (   K=[L|_]
		      ->  setarg(4, L, _)
		      ;   true
		      )
		  ;   I=[_, _|K],
		      setarg(2, I, K),
		      (   K=[L|_]
		      ->  setarg(4, L, I)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_functor/3___3'(H, C)
	    )
	).
'known/1_1_$special_functor/3___3__0'(C, B, A, L) :-
	ground(A),
	ground(B),
	var(C),
	nb_getval('$chr_store_global_list_guard_entailment____variables___1', D),
	'chr sbag_member'(E, D),
	E=suspension(_, active, _, W), !,
	E=suspension(_, _, _, F),
	setarg(2, E, removed),
	term_variables(F, K),
	arg(3, E, G),
	(   var(G)
	->  nb_getval('$chr_store_global_list_guard_entailment____variables___1',
		      H),
	    H=[_|I],
	    b_setval('$chr_store_global_list_guard_entailment____variables___1',
		     I),
	    (   I=[J|_]
	    ->  setarg(3, J, _)
	    ;   true
	    )
	;   G=[_, _|I],
	    setarg(2, G, I),
	    (   I=[J|_]
	    ->  setarg(3, J, G)
	    ;   true
	    )
	),
	detach_variables___1(K, E),
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O, P),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(term(N, O, P), Q),
		( arg(4, L, R),
		  (   var(R)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
				S),
		      S=[_|T],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			       T),
		      (   T=[U|_]
		      ->  setarg(4, U, _)
		      ;   true
		      )
		  ;   R=[_, _|T],
		      setarg(2, R, T),
		      (   T=[U|_]
		      ->  setarg(4, U, R)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_functor/3___3'(Q, L)
	    )
	),
	functor(C, B, A),
	C=..[_|V],
	append(V, W, X),
	variables(X).
'known/1_1_$special_functor/3___3__0'(A, B, C, D) :-
	nonvar(A),
	'chr lock'(A),
	'chr lock'(B),
	'chr lock'(C),
	\+ functor(A, B, C),
	'chr unlock'(A),
	'chr unlock'(B),
	'chr unlock'(C), !,
	(   var(D)
	->  true
	;   D=suspension(_, E, _, _, F, G, H),
	    setarg(2, D, removed),
	    (   E==not_stored_yet
	    ->  I=[]
	    ;   term_variables(term(F, G, H), I),
		( arg(4, D, J),
		  (   var(J)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
				K),
		      K=[_|L],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			       L),
		      (   L=[M|_]
		      ->  setarg(4, M, _)
		      ;   true
		      )
		  ;   J=[_, _|L],
		      setarg(2, J, L),
		      (   L=[M|_]
		      ->  setarg(4, M, J)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_functor/3___3'(I, D)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_functor/3___3__0'(C, B, A, S) :-
	nonvar(A),
	nonvar(B),
	(   'chr newvia_1'(C, D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		      F)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, H, J, I),
	H==C,
	nonvar(I),
	nonvar(J), !,
	G=suspension(_, _, _, _, K, L, M),
	setarg(2, G, removed),
	term_variables(term(K, L, M), R),
	arg(4, G, N),
	(   var(N)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		      O),
	    O=[_|P],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		     P),
	    (   P=[Q|_]
	    ->  setarg(4, Q, _)
	    ;   true
	    )
	;   N=[_, _|P],
	    setarg(2, N, P),
	    (   P=[Q|_]
	    ->  setarg(4, Q, N)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_functor/3___3'(R, G),
	(   var(S)
	->  true
	;   S=suspension(_, T, _, _, U, V, W),
	    setarg(2, S, removed),
	    (   T==not_stored_yet
	    ->  X=[]
	    ;   term_variables(term(U, V, W), X),
		( arg(4, S, Y),
		  (   var(Y)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
				Z),
		      Z=[_|A1],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			       A1),
		      (   A1=[B1|_]
		      ->  setarg(4, B1, _)
		      ;   true
		      )
		  ;   Y=[_, _|A1],
		      setarg(2, Y, A1),
		      (   A1=[B1|_]
		      ->  setarg(4, B1, Y)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_functor/3___3'(X, S)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_functor/3___3__0'(A, B, C, R) :-
	(   'chr newvia'([A, B, C], D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, F, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      F)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, H),
	nonvar(H),
	H=functor(I, J, K),
	I==A,
	J==B,
	K==C, !,
	G=suspension(_, _, _, _, L),
	setarg(2, G, removed),
	term_variables(L, Q),
	arg(4, G, M),
	(   var(M)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      N),
	    N=[_|O],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     O),
	    (   O=[P|_]
	    ->  setarg(4, P, _)
	    ;   true
	    )
	;   M=[_, _|O],
	    setarg(2, M, O),
	    (   O=[P|_]
	    ->  setarg(4, P, M)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(Q, G),
	(   var(R)
	->  true
	;   R=suspension(_, S, _, _, T, U, V),
	    setarg(2, R, removed),
	    (   S==not_stored_yet
	    ->  W=[]
	    ;   term_variables(term(T, U, V), W),
		( arg(4, R, X),
		  (   var(X)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
				Y),
		      Y=[_|Z],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			       Z),
		      (   Z=[A1|_]
		      ->  setarg(4, A1, _)
		      ;   true
		      )
		  ;   X=[_, _|Z],
		      setarg(2, X, Z),
		      (   Z=[A1|_]
		      ->  setarg(4, A1, X)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_functor/3___3'(W, R)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_functor/3___3__0'(A, B, C, G) :-
	(   'chr newvia'([A, B, C], D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F)
	), !,
	(   var(G)
	->  G=suspension(H, not_stored_yet, 0, _, A, B, C),
	    'chr gen_id'(H)
	;   true
	),
	'known/1_1_$special_functor/3___3__0__0__10'(F, A, B, C, G).
'known/1_1_$special_functor/3___3__0__0__10'([], A, B, C, D) :-
	'known/1_1_$special_functor/3___3__1'(A, B, C, D).
'known/1_1_$special_functor/3___3__0__0__10'([A|C1], E, G, I, Q) :-
	(   A=suspension(_, active, _, _, B, B1),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=functor(D, F, H),
	    D==E,
	    F==G,
	    H==I
	->  ( A=suspension(_, _, _, _, J, K),
	      setarg(2, A, removed),
	      term_variables(term(J, K), P),
	      ( arg(4, A, L),
		(   var(L)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      M),
		    M=[_|N],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     N),
		    (   N=[O|_]
		    ->  setarg(4, O, _)
		    ;   true
		    )
		;   L=[_, _|N],
		    setarg(2, L, N),
		    (   N=[O|_]
		    ->  setarg(4, O, L)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(P, A)
	    ),
	    ( arg(2, Q, T),
	      setarg(2, Q, active),
	      ( arg(3, Q, R),
		S is R+1,
		setarg(3, Q, S)
	      ),
	      (   T==not_stored_yet
	      ->  Q=suspension(_, _, _, _, U, V, W),
		  term_variables(term(U, V, W), X),
		  'chr none_locked'(X),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			      Y),
		    Z=[Q|Y],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			     Z),
		    (   Y=[A1|_]
		    ->  setarg(4, A1, Z)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_functor/3___3'(X, Q)
	      ;   true
	      )
	    ),
	    known(B1),
	    (   Q=suspension(_, active, S, _, _, _, _)
	    ->  setarg(2, Q, inactive),
		'known/1_1_$special_functor/3___3__0__0__10'(C1, E, G, I, Q)
	    ;   true
	    )
	;   'known/1_1_$special_functor/3___3__0__0__10'(C1, E, G, I, Q)
	).
'known/1_1_$special_functor/3___3__0'(B, C, D, A) :-
	(   var(A)
	->  A=suspension(E, not_stored_yet, 0, _, B, C, D),
	    'chr gen_id'(E)
	;   true
	),
	'known/1_1_$special_functor/3___3__1'(B, C, D, A).
'known/1_1_$special_functor/3___3__1'(A, B, C, G) :-
	(   'chr newvia'([A, B, C], D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, _, _, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      F)
	), !,
	'known/1_1_$special_functor/3___3__1__0__11'(F, A, B, C, G).
'known/1_1_$special_functor/3___3__1__0__11'([], A, B, C, D) :-
	'known/1_1_$special_functor/3___3__2'(A, B, C, D).
'known/1_1_$special_functor/3___3__1__0__11'([A|D1], F, H, J, R) :-
	(   A=suspension(_, active, _, _, B, C1),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D=functor(E, G, I),
	    E==F,
	    G==H,
	    I==J
	->  ( A=suspension(_, _, _, _, K, L),
	      setarg(2, A, removed),
	      term_variables(term(K, L), Q),
	      ( arg(4, A, M),
		(   var(M)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      N),
		    N=[_|O],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     O),
		    (   O=[P|_]
		    ->  setarg(4, P, _)
		    ;   true
		    )
		;   M=[_, _|O],
		    setarg(2, M, O),
		    (   O=[P|_]
		    ->  setarg(4, P, M)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(Q, A)
	    ),
	    ( arg(2, R, U),
	      setarg(2, R, active),
	      ( arg(3, R, S),
		T is S+1,
		setarg(3, R, T)
	      ),
	      (   U==not_stored_yet
	      ->  R=suspension(_, _, _, _, V, W, X),
		  term_variables(term(V, W, X), Y),
		  'chr none_locked'(Y),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			      Z),
		    A1=[R|Z],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			     A1),
		    (   Z=[B1|_]
		    ->  setarg(4, B1, A1)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_functor/3___3'(Y, R)
	      ;   true
	      )
	    ),
	    known(C1),
	    (   R=suspension(_, active, T, _, _, _, _)
	    ->  setarg(2, R, inactive),
		'known/1_1_$special_functor/3___3__1__0__11'(D1, F, H, J, R)
	    ;   true
	    )
	;   'known/1_1_$special_functor/3___3__1__0__11'(D1, F, H, J, R)
	).
'known/1_1_$special_functor/3___3__1'(A, B, C, D) :-
	'known/1_1_$special_functor/3___3__2'(A, B, C, D).
'known/1_1_$special_functor/3___3__2'(A, E, F, G) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, D, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      D)
	), !,
	'known/1_1_$special_functor/3___3__2__0__12'(D, A, E, F, G).
'known/1_1_$special_functor/3___3__2__0__12'([], A, B, C, D) :-
	'known/1_1_$special_functor/3___3__3'(A, B, C, D).
'known/1_1_$special_functor/3___3__2__0__12'([A|M], E, N, O, P) :-
	(   A=suspension(_, active, _, _, B, _),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C=functor(D, _, _),
	    D==E
	->  ( A=suspension(_, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(4, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(4, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(4, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(L, A)
	    ),
	    'known/1_1_$special_functor/3___3__2__0__12'(M, E, N, O, P)
	;   'known/1_1_$special_functor/3___3__2__0__12'(M, E, N, O, P)
	).
'known/1_1_$special_functor/3___3__2'(A, B, C, D) :-
	'known/1_1_$special_functor/3___3__3'(A, B, C, D).
'known/1_1_$special_functor/3___3__3'(_, _, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(3, A, B),
	C is B+1,
	setarg(3, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, E, F, G),
	    term_variables(term(E, F, G), H),
	    'chr none_locked'(H),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			I),
	      J=[A|I],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		       J),
	      (   I=[K|_]
	      ->  setarg(4, K, J)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_functor/3___3'(H, A)
	;   true
	).
'known/1_1_$special_\\=/2'(A, B) :-
	'known/1_1_$special_\\=/2___2__0'(A, B, _).
'known/1_1_$special_\\=/2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(5, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\=/2___2'(M, I)
	    )
	).
'known/1_1_$special_\\=/2___2__0'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\=/2___2'(G, C)
	    )
	).
'known/1_1_$special_\\=/2___2__0'(B, A, C) :-
	ground(A),
	ground(B),
	'chr lock'(B),
	'chr lock'(A),
	B=A,
	'chr unlock'(B),
	'chr unlock'(A), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\=/2___2'(G, C)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_\\=/2___2__0'(B, A, C) :-
	A==B, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\=/2___2'(G, C)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_\\=/2___2__0'(B, A, D) :-
	nonvar(A),
	(   var(B),
	    'chr lock'(A),
	    functor(A, M, C),
	    C>0,
	    'chr unlock'(A), !,
	    (   var(D)
	    ->  true
	    ;   D=suspension(_, E, _, _, _, F, G),
		setarg(2, D, removed),
		(   E==not_stored_yet
		->  H=[]
		;   term_variables(term(F, G), H),
		    ( arg(5, D, I),
		      (   var(I)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				    J),
			  J=[_|K],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				   K),
			  (   K=[L|_]
			  ->  setarg(5, L, _)
			  ;   true
			  )
		      ;   I=[_, _|K],
			  setarg(2, I, K),
			  (   K=[L|_]
			  ->  setarg(5, L, I)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_\\=/2___2'(H, D)
		)
	    ),
	    length(N, C),
	    A=..[M|O],
	    P=..[M|N],
	    add_args_nunif(O, N, Q),
	    R= (\+functor(B, M, C);B=P, Q),
	    known(R)
	;   nonvar(B),
	    'chr lock'(B),
	    functor(B, A1, B1),
	    'chr unlock'(B), !,
	    (   var(D)
	    ->  true
	    ;   D=suspension(_, S, _, _, _, T, U),
		setarg(2, D, removed),
		(   S==not_stored_yet
		->  V=[]
		;   term_variables(term(T, U), V),
		    ( arg(5, D, W),
		      (   var(W)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				    X),
			  X=[_|Y],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				   Y),
			  (   Y=[Z|_]
			  ->  setarg(5, Z, _)
			  ;   true
			  )
		      ;   W=[_, _|Y],
			  setarg(2, W, Y),
			  (   Y=[Z|_]
			  ->  setarg(5, Z, W)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_\\=/2___2'(V, D)
		)
	    ),
	    (   functor(A, A1, B1)
	    ->  B=..[A1|C1],
		A=..[A1|D1],
		add_args_nunif(C1, D1, E1),
		known(E1)
	    ;   true
	    )
	).
'known/1_1_$special_\\=/2___2__0'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	(   '$novel_production'(A, 182), !,
	    '$extend_history'(A, 182),
	    arg(2, A, G),
	    setarg(2, A, active),
	    arg(4, A, E),
	    F is E+1,
	    setarg(4, A, F),
	    (   G==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, H, I),
		term_variables(term(H, I), J),
		'chr none_locked'(J),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			    K),
		  L=[A|K],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			   L),
		  (   K=[M|_]
		  ->  setarg(5, M, L)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_\\=/2___2'(J, A)
	    ;   true
	    ),
	    'known/1_1_$special_\\=/2'(C, B),
	    (   A=suspension(_, active, _, F, _, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_\\=/2___2__1'(B, C, A)
	    ;   true
	    )
	;   'known/1_1_$special_\\=/2___2__1'(B, C, A)
	).
'known/1_1_$special_\\=/2___2__1'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H\=I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\=/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_\\=/2___2__1'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_\\=/2___2__1__0__11'(E, A, B, F).
'known/1_1_$special_\\=/2___2__1__0__11'([], A, B, C) :-
	'known/1_1_$special_\\=/2___2__2'(A, B, C).
'known/1_1_$special_\\=/2___2__1__0__11'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D\=F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(4, O, P),
		Q is P+1,
		setarg(4, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(5, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\=/2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, _, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_\\=/2___2__1__0__11'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_\\=/2___2__1__0__11'(Z, E, G, O)
	).
'known/1_1_$special_\\=/2___2__1'(A, B, C) :-
	'known/1_1_$special_\\=/2___2__2'(A, B, C).
'known/1_1_$special_\\=/2___2__2'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_\\=/2___2__2__0__12'(E, A, B, F).
'known/1_1_$special_\\=/2___2__2__0__12'([], A, B, C) :-
	'known/1_1_$special_\\=/2___2__3'(A, B, C).
'known/1_1_$special_\\=/2___2__2__0__12'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E\=G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(4, P, Q),
		R is Q+1,
		setarg(4, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(5, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\=/2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, _, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_\\=/2___2__2__0__12'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_\\=/2___2__2__0__12'(A1, F, H, P)
	).
'known/1_1_$special_\\=/2___2__2'(A, B, C) :-
	'known/1_1_$special_\\=/2___2__3'(A, B, C).
'known/1_1_$special_\\=/2___2__3'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_\\=/2___2'(G, A)
	;   true
	).
'known/1_1_$special_=/2'(A, B) :-
	'known/1_1_$special_=/2___2__0'(A, B, _).
'known/1_1_$special_=/2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(4, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(4, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(4, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=/2___2'(M, I)
	    )
	).
'known/1_1_$special_=/2___2__0'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(4, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(4, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(4, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=/2___2'(G, C)
	    )
	).
'known/1_1_$special_=/2___2__0'(B, A, C) :-
	A==B, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(4, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(4, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(4, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=/2___2'(G, C)
	    )
	).
'known/1_1_$special_=/2___2__0'(A, K, B) :-
	var(A), !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, D, E),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  F=[]
	    ;   term_variables(term(D, E), F),
		( arg(4, B, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=/2___2'(F, B)
	    )
	),
	A=K.
'known/1_1_$special_=/2___2__0'(K, A, B) :-
	var(A), !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, D, E),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  F=[]
	    ;   term_variables(term(D, E), F),
		( arg(4, B, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=/2___2'(F, B)
	    )
	),
	K=A.
'known/1_1_$special_=/2___2__0'(A, K, B) :-
	'chr lock'(A),
	functor(A, L, M),
	'chr unlock'(A), !,
	(   var(B)
	->  true
	;   B=suspension(_, C, _, _, D, E),
	    setarg(2, B, removed),
	    (   C==not_stored_yet
	    ->  F=[]
	    ;   term_variables(term(D, E), F),
		( arg(4, B, G),
		  (   var(G)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
				H),
		      H=[_|I],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			       I),
		      (   I=[J|_]
		      ->  setarg(4, J, _)
		      ;   true
		      )
		  ;   G=[_, _|I],
		      setarg(2, G, I),
		      (   I=[J|_]
		      ->  setarg(4, J, G)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=/2___2'(F, B)
	    )
	),
	(   functor(K, L, M),
	    A=K
	->  true
	;   'known/1_1_$special_fail/0'
	).
'known/1_1_$special_=/2___2__0'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H=I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(4, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(4, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(4, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=/2___2__0'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	(   var(F)
	->  F=suspension(G, not_stored_yet, 0, _, A, B),
	    'chr gen_id'(G)
	;   true
	),
	'known/1_1_$special_=/2___2__0__0__10'(E, A, B, F).
'known/1_1_$special_=/2___2__0__0__10'([], A, B, C) :-
	'known/1_1_$special_=/2___2__1'(A, B, C).
'known/1_1_$special_=/2___2__0__0__10'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D=F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(3, O, P),
		Q is P+1,
		setarg(3, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(4, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=/2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_=/2___2__0__0__10'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=/2___2__0__0__10'(Z, E, G, O)
	).
'known/1_1_$special_=/2___2__0'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	'known/1_1_$special_=/2___2__1'(B, C, A).
'known/1_1_$special_=/2___2__1'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_=/2___2__1__0__11'(E, A, B, F).
'known/1_1_$special_=/2___2__1__0__11'([], A, B, C) :-
	'known/1_1_$special_=/2___2__2'(A, B, C).
'known/1_1_$special_=/2___2__1__0__11'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E=G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(3, P, Q),
		R is Q+1,
		setarg(3, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(4, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=/2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_=/2___2__1__0__11'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=/2___2__1__0__11'(A1, F, H, P)
	).
'known/1_1_$special_=/2___2__1'(A, B, C) :-
	'known/1_1_$special_=/2___2__2'(A, B, C).
'known/1_1_$special_=/2___2__2'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(3, A, B),
	C is B+1,
	setarg(3, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(4, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_=/2___2'(G, A)
	;   true
	).
'known/1_1_$special_,/2'(_, _) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'known/1_1_$special_,/2'(A, B) :-
	known(A),
	known(B).
'known/1_1_$special_\\==/2'(A, B) :-
	'known/1_1_$special_\\==/2___2__0'(A, B, _).
'known/1_1_$special_\\==/2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(5, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\==/2___2'(M, I)
	    )
	).
'known/1_1_$special_\\==/2___2__0'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	(   '$novel_production'(A, 138),
	    number(B), !,
	    '$extend_history'(A, 138),
	    arg(2, A, G),
	    setarg(2, A, active),
	    arg(4, A, E),
	    F is E+1,
	    setarg(4, A, F),
	    (   G==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, H, I),
		term_variables(term(H, I), J),
		'chr none_locked'(J),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			    K),
		  L=[A|K],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			   L),
		  (   K=[M|_]
		  ->  setarg(5, M, L)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_\\==/2___2'(J, A)
	    ;   true
	    ),
	    'known/1_1_$special_=\\=/2'(B, C),
	    (   A=suspension(_, active, _, F, _, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_\\==/2___2__1'(B, C, A)
	    ;   true
	    )
	;   'known/1_1_$special_\\==/2___2__1'(B, C, A)
	).
'known/1_1_$special_\\==/2___2__1'(L, B, A) :-
	'$novel_production'(A, 139),
	number(B), !,
	'$extend_history'(A, 139),
	arg(2, A, E),
	setarg(2, A, active),
	arg(4, A, C),
	D is C+1,
	setarg(4, A, D),
	(   E==not_stored_yet
	->  A=suspension(_, _, _, _, _, F, G),
	    term_variables(term(F, G), H),
	    'chr none_locked'(H),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			I),
	      J=[A|I],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		       J),
	      (   I=[K|_]
	      ->  setarg(5, K, J)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_\\==/2___2'(H, A)
	;   true
	),
	'known/1_1_$special_=\\=/2'(L, B),
	(   A=suspension(_, active, _, D, _, _, _)
	->  setarg(2, A, inactive),
	    'known/1_1_$special_\\==/2___2__2'(L, B, A)
	;   true
	).
'known/1_1_$special_\\==/2___2__1'(A, B, C) :-
	'known/1_1_$special_\\==/2___2__2'(A, B, C).
'known/1_1_$special_\\==/2___2__2'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\==/2___2'(G, C)
	    )
	).
'known/1_1_$special_\\==/2___2__2'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H\==I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\==/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_\\==/2___2__2'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	F=suspension(_, _, _, _, _, I, J),
	setarg(2, F, removed),
	term_variables(term(I, J), O),
	arg(5, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		     M),
	    (   M=[N|_]
	    ->  setarg(5, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(5, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_==/2___2'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\==/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_\\==/2___2__2'(A, E, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		      D)
	), !,
	'known/1_1_$special_\\==/2___2__2__0__9'(D, A, E, F).
'known/1_1_$special_\\==/2___2__2__0__9'([], A, B, C) :-
	'known/1_1_$special_\\==/2___2__3'(A, B, C).
'known/1_1_$special_\\==/2___2__2__0__9'([A|Q], C, P, D) :-
	(   A=suspension(_, active, _, _, _, O, B),
	    B==C,
	    E=t(229, A, D),
	    '$novel_production'(A, E),
	    '$novel_production'(D, E)
	->  '$extend_history'(D, E),
	    ( arg(2, D, H),
	      setarg(2, D, active),
	      ( arg(4, D, F),
		G is F+1,
		setarg(4, D, G)
	      ),
	      (   H==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, I, J),
		  term_variables(term(I, J), K),
		  'chr none_locked'(K),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			      L),
		    M=[D|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			     M),
		    (   L=[N|_]
		    ->  setarg(5, N, M)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\==/2___2'(K, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_\\==/2'(O, P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_\\==/2___2__2__0__9'(Q, C, P, D)
	    ;   true
	    )
	;   'known/1_1_$special_\\==/2___2__2__0__9'(Q, C, P, D)
	).
'known/1_1_$special_\\==/2___2__2'(A, B, C) :-
	'known/1_1_$special_\\==/2___2__3'(A, B, C).
'known/1_1_$special_\\==/2___2__3'(L, K, A) :-
	'$novel_production'(A, 231), !,
	'$extend_history'(A, 231),
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_\\==/2___2'(G, A)
	;   true
	),
	'known/1_1_$special_\\==/2'(K, L),
	(   A=suspension(_, active, _, C, _, _, _)
	->  setarg(2, A, inactive),
	    'known/1_1_$special_\\==/2___2__4'(L, K, A)
	;   true
	).
'known/1_1_$special_\\==/2___2__3'(A, B, C) :-
	'known/1_1_$special_\\==/2___2__4'(A, B, C).
'known/1_1_$special_\\==/2___2__4'(B, A, C) :-
	A==B,
	'$novel_production'(C, 232), !,
	'$extend_history'(C, 232),
	arg(2, C, F),
	setarg(2, C, active),
	arg(4, C, D),
	E is D+1,
	setarg(4, C, E),
	(   F==not_stored_yet
	->  C=suspension(_, _, _, _, _, G, H),
	    term_variables(term(G, H), I),
	    'chr none_locked'(I),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			J),
	      K=[C|J],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		       K),
	      (   J=[L|_]
	      ->  setarg(5, L, K)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_\\==/2___2'(I, C)
	;   true
	),
	'known/1_1_$special_fail/0',
	(   C=suspension(_, active, _, E, _, _, _)
	->  setarg(2, C, inactive),
	    'known/1_1_$special_\\==/2___2__5'(B, A, C)
	;   true
	).
'known/1_1_$special_\\==/2___2__4'(A, B, C) :-
	'known/1_1_$special_\\==/2___2__5'(A, B, C).
'known/1_1_$special_\\==/2___2__5'(B, A, C) :-
	nonvar(A),
	nonvar(B),
	'chr lock'(B),
	functor(B, L, M),
	'chr unlock'(B), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_\\==/2___2'(G, C)
	    )
	),
	(   functor(A, L, M)
	->  B=..[L|N],
	    A=..[L|O],
	    add_args_nmatch(N, O, P),
	    known(P)
	;   true
	).
'known/1_1_$special_\\==/2___2__5'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_\\==/2___2__5__0__13'(E, A, B, F).
'known/1_1_$special_\\==/2___2__5__0__13'([], A, B, C) :-
	'known/1_1_$special_\\==/2___2__6'(A, B, C).
'known/1_1_$special_\\==/2___2__5__0__13'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D\==F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(4, O, P),
		Q is P+1,
		setarg(4, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(5, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\==/2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, _, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_\\==/2___2__5__0__13'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_\\==/2___2__5__0__13'(Z, E, G, O)
	).
'known/1_1_$special_\\==/2___2__5'(A, B, C) :-
	'known/1_1_$special_\\==/2___2__6'(A, B, C).
'known/1_1_$special_\\==/2___2__6'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_\\==/2___2__6__0__14'(E, A, B, F).
'known/1_1_$special_\\==/2___2__6__0__14'([], A, B, C) :-
	'known/1_1_$special_\\==/2___2__7'(A, B, C).
'known/1_1_$special_\\==/2___2__6__0__14'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E\==G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(4, P, Q),
		R is Q+1,
		setarg(4, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(5, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_\\==/2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, _, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_\\==/2___2__6__0__14'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_\\==/2___2__6__0__14'(A1, F, H, P)
	).
'known/1_1_$special_\\==/2___2__6'(A, B, C) :-
	'known/1_1_$special_\\==/2___2__7'(A, B, C).
'known/1_1_$special_\\==/2___2__7'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_\\==/2___2'(G, A)
	;   true
	).
'known/1_1_$special_==/2'(A, B) :-
	'known/1_1_$special_==/2___2__0'(A, B, _).
'known/1_1_$special_==/2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(5, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_==/2___2'(M, I)
	    )
	).
'known/1_1_$special_==/2___2__0'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	(   '$novel_production'(A, 136),
	    number(B), !,
	    '$extend_history'(A, 136),
	    arg(2, A, G),
	    setarg(2, A, active),
	    arg(4, A, E),
	    F is E+1,
	    setarg(4, A, F),
	    (   G==not_stored_yet
	    ->  A=suspension(_, _, _, _, _, H, I),
		term_variables(term(H, I), J),
		'chr none_locked'(J),
		( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			    K),
		  L=[A|K],
		  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			   L),
		  (   K=[M|_]
		  ->  setarg(5, M, L)
		  ;   true
		  )
		),
		'attach_known/1_1_$special_==/2___2'(J, A)
	    ;   true
	    ),
	    'known/1_1_$special_=:=/2'(B, C),
	    (   A=suspension(_, active, _, F, _, _, _)
	    ->  setarg(2, A, inactive),
		'known/1_1_$special_==/2___2__1'(B, C, A)
	    ;   true
	    )
	;   'known/1_1_$special_==/2___2__1'(B, C, A)
	).
'known/1_1_$special_==/2___2__1'(L, B, A) :-
	'$novel_production'(A, 137),
	number(B), !,
	'$extend_history'(A, 137),
	arg(2, A, E),
	setarg(2, A, active),
	arg(4, A, C),
	D is C+1,
	setarg(4, A, D),
	(   E==not_stored_yet
	->  A=suspension(_, _, _, _, _, F, G),
	    term_variables(term(F, G), H),
	    'chr none_locked'(H),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			I),
	      J=[A|I],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		       J),
	      (   I=[K|_]
	      ->  setarg(5, K, J)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_==/2___2'(H, A)
	;   true
	),
	'known/1_1_$special_=:=/2'(L, B),
	(   A=suspension(_, active, _, D, _, _, _)
	->  setarg(2, A, inactive),
	    'known/1_1_$special_==/2___2__2'(L, B, A)
	;   true
	).
'known/1_1_$special_==/2___2__1'(A, B, C) :-
	'known/1_1_$special_==/2___2__2'(A, B, C).
'known/1_1_$special_==/2___2__2'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_==/2___2'(G, C)
	    )
	).
'known/1_1_$special_==/2___2__2'(B, A, C) :-
	A==B, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_==/2___2'(G, C)
	    )
	).
'known/1_1_$special_==/2___2__2'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H==I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_==/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_==/2___2__2'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	F=suspension(_, _, _, _, _, I, J),
	setarg(2, F, removed),
	term_variables(term(I, J), O),
	arg(5, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		     M),
	    (   M=[N|_]
	    ->  setarg(5, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(5, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\==/2___2'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_==/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_==/2___2__2'(E, A, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		      D)
	), !,
	'known/1_1_$special_==/2___2__2__0__10'(D, E, A, F).
'known/1_1_$special_==/2___2__2__0__10'([], A, B, C) :-
	'known/1_1_$special_==/2___2__3'(A, B, C).
'known/1_1_$special_==/2___2__2__0__10'([A|Q], O, C, D) :-
	(   A=suspension(_, active, _, _, _, B, P),
	    B==C,
	    E=t(228, D, A),
	    '$novel_production'(D, E),
	    '$novel_production'(A, E)
	->  '$extend_history'(D, E),
	    ( arg(2, D, H),
	      setarg(2, D, active),
	      ( arg(4, D, F),
		G is F+1,
		setarg(4, D, G)
	      ),
	      (   H==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, I, J),
		  term_variables(term(I, J), K),
		  'chr none_locked'(K),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			      L),
		    M=[D|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			     M),
		    (   L=[N|_]
		    ->  setarg(5, N, M)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_==/2___2'(K, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_==/2'(O, P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_==/2___2__2__0__10'(Q, O, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_==/2___2__2__0__10'(Q, O, C, D)
	).
'known/1_1_$special_==/2___2__2'(A, B, C) :-
	'known/1_1_$special_==/2___2__3'(A, B, C).
'known/1_1_$special_==/2___2__3'(A, E, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		      D)
	), !,
	'known/1_1_$special_==/2___2__3__0__11'(D, A, E, F).
'known/1_1_$special_==/2___2__3__0__11'([], A, B, C) :-
	'known/1_1_$special_==/2___2__4'(A, B, C).
'known/1_1_$special_==/2___2__3__0__11'([A|Q], C, P, D) :-
	(   A=suspension(_, active, _, _, _, O, B),
	    B==C,
	    E=t(228, A, D),
	    '$novel_production'(A, E),
	    '$novel_production'(D, E)
	->  '$extend_history'(D, E),
	    ( arg(2, D, H),
	      setarg(2, D, active),
	      ( arg(4, D, F),
		G is F+1,
		setarg(4, D, G)
	      ),
	      (   H==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, I, J),
		  term_variables(term(I, J), K),
		  'chr none_locked'(K),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			      L),
		    M=[D|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			     M),
		    (   L=[N|_]
		    ->  setarg(5, N, M)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_==/2___2'(K, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_==/2'(O, P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_==/2___2__3__0__11'(Q, C, P, D)
	    ;   true
	    )
	;   'known/1_1_$special_==/2___2__3__0__11'(Q, C, P, D)
	).
'known/1_1_$special_==/2___2__3'(A, B, C) :-
	'known/1_1_$special_==/2___2__4'(A, B, C).
'known/1_1_$special_==/2___2__4'(E, A, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		      D)
	), !,
	'known/1_1_$special_==/2___2__4__0__12'(D, E, A, F).
'known/1_1_$special_==/2___2__4__0__12'([], A, B, C) :-
	'known/1_1_$special_==/2___2__5'(A, B, C).
'known/1_1_$special_==/2___2__4__0__12'([A|Q], O, C, D) :-
	(   A=suspension(_, active, _, _, _, B, P),
	    B==C,
	    E=t(229, D, A),
	    '$novel_production'(D, E),
	    '$novel_production'(A, E)
	->  '$extend_history'(D, E),
	    ( arg(2, D, H),
	      setarg(2, D, active),
	      ( arg(4, D, F),
		G is F+1,
		setarg(4, D, G)
	      ),
	      (   H==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, I, J),
		  term_variables(term(I, J), K),
		  'chr none_locked'(K),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			      L),
		    M=[D|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			     M),
		    (   L=[N|_]
		    ->  setarg(5, N, M)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_==/2___2'(K, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_\\==/2'(O, P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_==/2___2__4__0__12'(Q, O, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_==/2___2__4__0__12'(Q, O, C, D)
	).
'known/1_1_$special_==/2___2__4'(A, B, C) :-
	'known/1_1_$special_==/2___2__5'(A, B, C).
'known/1_1_$special_==/2___2__5'(L, K, A) :-
	'$novel_production'(A, 230), !,
	'$extend_history'(A, 230),
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_==/2___2'(G, A)
	;   true
	),
	'known/1_1_$special_==/2'(K, L),
	(   A=suspension(_, active, _, C, _, _, _)
	->  setarg(2, A, inactive),
	    'known/1_1_$special_==/2___2__6'(L, K, A)
	;   true
	).
'known/1_1_$special_==/2___2__5'(A, B, C) :-
	'known/1_1_$special_==/2___2__6'(A, B, C).
'known/1_1_$special_==/2___2__6'(K, L, A) :-
	'$novel_production'(A, 234), !,
	'$extend_history'(A, 234),
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_==/2___2'(G, A)
	;   true
	),
	'known/1_1_$special_=/2'(K, L),
	(   A=suspension(_, active, _, C, _, _, _)
	->  setarg(2, A, inactive),
	    'known/1_1_$special_==/2___2__7'(K, L, A)
	;   true
	).
'known/1_1_$special_==/2___2__6'(A, B, C) :-
	'known/1_1_$special_==/2___2__7'(A, B, C).
'known/1_1_$special_==/2___2__7'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_==/2___2__7__0__15'(E, A, B, F).
'known/1_1_$special_==/2___2__7__0__15'([], A, B, C) :-
	'known/1_1_$special_==/2___2__8'(A, B, C).
'known/1_1_$special_==/2___2__7__0__15'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D==F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(4, O, P),
		Q is P+1,
		setarg(4, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(5, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_==/2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, _, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_==/2___2__7__0__15'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_==/2___2__7__0__15'(Z, E, G, O)
	).
'known/1_1_$special_==/2___2__7'(A, B, C) :-
	'known/1_1_$special_==/2___2__8'(A, B, C).
'known/1_1_$special_==/2___2__8'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_==/2___2__8__0__16'(E, A, B, F).
'known/1_1_$special_==/2___2__8__0__16'([], A, B, C) :-
	'known/1_1_$special_==/2___2__9'(A, B, C).
'known/1_1_$special_==/2___2__8__0__16'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E==G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(4, P, Q),
		R is Q+1,
		setarg(4, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(5, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_==/2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, _, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_==/2___2__8__0__16'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_==/2___2__8__0__16'(A1, F, H, P)
	).
'known/1_1_$special_==/2___2__8'(A, B, C) :-
	'known/1_1_$special_==/2___2__9'(A, B, C).
'known/1_1_$special_==/2___2__9'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_==/2___2'(G, A)
	;   true
	).
'known/1_1_$special_is/2'(A, B) :-
	'known/1_1_$special_=:=/2'(A, B).
'known/1_1_$special_</2'(A, B) :-
	'known/1_1_$special_=</2'(A, B),
	'known/1_1_$special_=\\=/2'(A, B).
'known/1_1_$special_>=/2'(B, A) :-
	'known/1_1_$special_=</2'(A, B).
'known/1_1_$special_>/2'(B, A) :-
	'known/1_1_$special_</2'(A, B).
'known/1_1_$special_=</2'(A, B) :-
	'known/1_1_$special_=</2___2__0'(A, B, _).
'known/1_1_$special_=</2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(5, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=</2___2'(M, I)
	    )
	).
'known/1_1_$special_=</2___2__0'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=</2___2'(G, C)
	    )
	).
'known/1_1_$special_=</2___2__0'(B, A, C) :-
	A==B, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=</2___2'(G, C)
	    )
	).
'known/1_1_$special_=</2___2__0'(B, A, C) :-
	number(A),
	(   number(B),
	    B>A, !,
	    (   var(C)
	    ->  true
	    ;   C=suspension(_, D, _, _, _, E, F),
		setarg(2, C, removed),
		(   D==not_stored_yet
		->  G=[]
		;   term_variables(term(E, F), G),
		    ( arg(5, C, H),
		      (   var(H)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				    I),
			  I=[_|J],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				   J),
			  (   J=[K|_]
			  ->  setarg(5, K, _)
			  ;   true
			  )
		      ;   H=[_, _|J],
			  setarg(2, H, J),
			  (   J=[K|_]
			  ->  setarg(5, K, H)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_=</2___2'(G, C)
		)
	    ),
	    'known/1_1_$special_fail/0'
	;   (   'chr newvia_1'(B, L)
	    ->  get_attr(L, guard_entailment, M),
		M=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, N, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			  N)
	    ),
	    'chr sbag_member'(O, N),
	    O=suspension(_, active, _, _, _, P, Q),
	    P==B,
	    number(Q),
	    Q=<A, !,
	    (   var(C)
	    ->  true
	    ;   C=suspension(_, R, _, _, _, S, T),
		setarg(2, C, removed),
		(   R==not_stored_yet
		->  U=[]
		;   term_variables(term(S, T), U),
		    ( arg(5, C, V),
		      (   var(V)
		      ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				    W),
			  W=[_|X],
			  b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				   X),
			  (   X=[Y|_]
			  ->  setarg(5, Y, _)
			  ;   true
			  )
		      ;   V=[_, _|X],
			  setarg(2, V, X),
			  (   X=[Y|_]
			  ->  setarg(5, Y, V)
			  ;   true
			  )
		      )
		    ),
		    'detach_known/1_1_$special_=</2___2'(U, C)
		)
	    )
	).
'known/1_1_$special_=</2___2__0'(A, E, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      D)
	), !,
	'known/1_1_$special_=</2___2__0__0__12'(D, A, E, F).
'known/1_1_$special_=</2___2__0__0__12'([], A, B, C) :-
	'known/1_1_$special_=</2___2__1'(A, B, C).
'known/1_1_$special_=</2___2__0__0__12'([A|M], C, E, N) :-
	(   ( A=suspension(_, active, _, _, _, B, D),
	      B==C
	    ),
	    number(D),
	    number(E),
	    E=<D
	->  ( A=suspension(_, _, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(5, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(5, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(5, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=</2___2'(L, A)
	    ),
	    'known/1_1_$special_=</2___2__0__0__12'(M, C, E, N)
	;   'known/1_1_$special_=</2___2__0__0__12'(M, C, E, N)
	).
'known/1_1_$special_=</2___2__0'(A, B, C) :-
	'known/1_1_$special_=</2___2__1'(A, B, C).
'known/1_1_$special_=</2___2__1'(A, B, I) :-
	number(A),
	(   'chr newvia_1'(B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, H, G),
	G==B,
	number(H),
	A=<H, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(5, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=</2___2'(M, I)
	    )
	).
'known/1_1_$special_=</2___2__1'(E, A, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      D)
	), !,
	'known/1_1_$special_=</2___2__1__0__14'(D, E, A, F).
'known/1_1_$special_=</2___2__1__0__14'([], A, B, C) :-
	'known/1_1_$special_=</2___2__2'(A, B, C).
'known/1_1_$special_=</2___2__1__0__14'([A|M], D, C, N) :-
	(   ( A=suspension(_, active, _, _, _, E, B),
	      B==C
	    ),
	    number(D),
	    number(E),
	    E=<D
	->  ( A=suspension(_, _, _, _, _, F, G),
	      setarg(2, A, removed),
	      term_variables(term(F, G), L),
	      ( arg(5, A, H),
		(   var(H)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      I),
		    I=[_|J],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     J),
		    (   J=[K|_]
		    ->  setarg(5, K, _)
		    ;   true
		    )
		;   H=[_, _|J],
		    setarg(2, H, J),
		    (   J=[K|_]
		    ->  setarg(5, K, H)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=</2___2'(L, A)
	    ),
	    'known/1_1_$special_=</2___2__1__0__14'(M, D, C, N)
	;   'known/1_1_$special_=</2___2__1__0__14'(M, D, C, N)
	).
'known/1_1_$special_=</2___2__1'(A, B, C) :-
	'known/1_1_$special_=</2___2__2'(A, B, C).
'known/1_1_$special_=</2___2__2'(B, A, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	F=suspension(_, _, _, _, _, I, J),
	setarg(2, F, removed),
	term_variables(term(I, J), O),
	arg(5, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		     M),
	    (   M=[N|_]
	    ->  setarg(5, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(5, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_=</2___2'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=</2___2'(T, P)
	    )
	),
	'known/1_1_$special_=:=/2'(B, A).
'known/1_1_$special_=</2___2__2'(F, A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      D)
	), !,
	(   var(E)
	->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
	    'chr gen_id'(G)
	;   true
	),
	'known/1_1_$special_=</2___2__2__0__17'(D, F, A, E).
'known/1_1_$special_=</2___2__2__0__17'([], A, B, C) :-
	'known/1_1_$special_=</2___2__3'(A, B, C).
'known/1_1_$special_=</2___2__2__0__17'([A|Q], O, C, D) :-
	(   A=suspension(_, active, _, _, _, B, P),
	    B==C,
	    E=t(187, D, A),
	    '$novel_production'(D, E),
	    '$novel_production'(A, E)
	->  '$extend_history'(D, E),
	    ( arg(2, D, H),
	      setarg(2, D, active),
	      ( arg(4, D, F),
		G is F+1,
		setarg(4, D, G)
	      ),
	      (   H==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, I, J),
		  term_variables(term(I, J), K),
		  'chr none_locked'(K),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      L),
		    M=[D|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     M),
		    (   L=[N|_]
		    ->  setarg(5, N, M)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=</2___2'(K, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=</2'(O, P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=</2___2__2__0__17'(Q, O, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_=</2___2__2__0__17'(Q, O, C, D)
	).
'known/1_1_$special_=</2___2__2'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	'known/1_1_$special_=</2___2__3'(B, C, A).
'known/1_1_$special_=</2___2__3'(A, E, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      D)
	), !,
	'known/1_1_$special_=</2___2__3__0__18'(D, A, E, F).
'known/1_1_$special_=</2___2__3__0__18'([], A, B, C) :-
	'known/1_1_$special_=</2___2__4'(A, B, C).
'known/1_1_$special_=</2___2__3__0__18'([A|Q], C, P, D) :-
	(   A=suspension(_, active, _, _, _, O, B),
	    B==C,
	    E=t(187, A, D),
	    '$novel_production'(A, E),
	    '$novel_production'(D, E)
	->  '$extend_history'(D, E),
	    ( arg(2, D, H),
	      setarg(2, D, active),
	      ( arg(4, D, F),
		G is F+1,
		setarg(4, D, G)
	      ),
	      (   H==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, I, J),
		  term_variables(term(I, J), K),
		  'chr none_locked'(K),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      L),
		    M=[D|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     M),
		    (   L=[N|_]
		    ->  setarg(5, N, M)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=</2___2'(K, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=</2'(O, P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=</2___2__3__0__18'(Q, C, P, D)
	    ;   true
	    )
	;   'known/1_1_$special_=</2___2__3__0__18'(Q, C, P, D)
	).
'known/1_1_$special_=</2___2__3'(A, B, C) :-
	'known/1_1_$special_=</2___2__4'(A, B, C).
'known/1_1_$special_=</2___2__4'(E, A, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, D, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		      D)
	), !,
	'known/1_1_$special_=</2___2__4__0__19'(D, E, A, F).
'known/1_1_$special_=</2___2__4__0__19'([], A, B, C) :-
	'known/1_1_$special_=</2___2__5'(A, B, C).
'known/1_1_$special_=</2___2__4__0__19'([A|H], I, C, J) :-
	(   ( A=suspension(_, active, _, _, _, B, D),
	      B==C
	    ),
	    (   'chr newvia_2'(C, D, E)
	    ->  get_attr(E, guard_entailment, F),
		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			  G)
	    )
	->  'known/1_1_$special_=</2___2__4__1__19'(G, D, A, H, I, C, J)
	;   'known/1_1_$special_=</2___2__4__0__19'(H, I, C, J)
	).
'known/1_1_$special_=</2___2__4__1__19'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=</2___2__4__0__19'(A, B, C, D).
'known/1_1_$special_=</2___2__4__1__19'([A|J], E, K, L, F, C, M) :-
	(   ( A=suspension(_, active, _, _, _, B, D),
	      B==C,
	      D==E
	    ),
	    (   'chr newvia_2'(F, C, G)
	    ->  get_attr(G, guard_entailment, H),
		H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, I, _, _, _, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			  I)
	    )
	->  'known/1_1_$special_=</2___2__4__2__19'(I, A, J, E, K, L, F, C, M)
	;   'known/1_1_$special_=</2___2__4__1__19'(J, E, K, L, F, C, M)
	).
'known/1_1_$special_=</2___2__4__2__19'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=</2___2__4__1__19'(A, B, C, D, E, F, G).
'known/1_1_$special_=</2___2__4__2__19'([A|T], H, U, S, B, V, D, F, G) :-
	(   A=suspension(_, active, _, _, _, C, E),
	    A\==B,
	    ( C==D,
	      E==F
	    ),
	    I=t(188, G, A, H, B),
	    '$novel_production'(G, I),
	    '$novel_production'(A, I),
	    '$novel_production'(H, I),
	    '$novel_production'(B, I)
	->  '$extend_history'(G, I),
	    ( arg(2, G, L),
	      setarg(2, G, active),
	      ( arg(4, G, J),
		K is J+1,
		setarg(4, G, K)
	      ),
	      (   L==not_stored_yet
	      ->  G=suspension(_, _, _, _, _, M, N),
		  term_variables(term(M, N), O),
		  'chr none_locked'(O),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      P),
		    Q=[G|P],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     Q),
		    (   P=[R|_]
		    ->  setarg(5, R, Q)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=</2___2'(O, G)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=\\=/2'(D, S),
	    (   G=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, G, inactive),
		'known/1_1_$special_=</2___2__4__2__19'(T,
							H,
							U,
							S,
							B,
							V,
							D,
							F,
							G)
	    ;   true
	    )
	;   'known/1_1_$special_=</2___2__4__2__19'(T, H, U, S, B, V, D, F, G)
	).
'known/1_1_$special_=</2___2__4'(A, B, C) :-
	'known/1_1_$special_=</2___2__5'(A, B, C).
'known/1_1_$special_=</2___2__5'(A, E, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		      D)
	), !,
	'known/1_1_$special_=</2___2__5__0__20'(D, A, E, F).
'known/1_1_$special_=</2___2__5__0__20'([], A, B, C) :-
	'known/1_1_$special_=</2___2__6'(A, B, C).
'known/1_1_$special_=</2___2__5__0__20'([A|I], C, D, J) :-
	(   ( A=suspension(_, active, _, _, _, H, B),
	      B==C
	    ),
	    (   'chr newvia_2'(C, D, E)
	    ->  get_attr(E, guard_entailment, F),
		F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			  G)
	    )
	->  'known/1_1_$special_=</2___2__5__1__20'(G, H, A, I, C, D, J)
	;   'known/1_1_$special_=</2___2__5__0__20'(I, C, D, J)
	).
'known/1_1_$special_=</2___2__5__1__20'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=</2___2__5__0__20'(A, B, C, D).
'known/1_1_$special_=</2___2__5__1__20'([A|J], F, K, L, C, E, M) :-
	(   ( A=suspension(_, active, _, _, _, B, D),
	      B==C,
	      D==E
	    ),
	    (   'chr newvia_2'(F, C, G)
	    ->  get_attr(G, guard_entailment, H),
		H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, I, _, _, _, _, _, _, _, _)
	    ;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			  I)
	    )
	->  'known/1_1_$special_=</2___2__5__2__20'(I, A, J, F, K, L, C, E, M)
	;   'known/1_1_$special_=</2___2__5__1__20'(J, F, K, L, C, E, M)
	).
'known/1_1_$special_=</2___2__5__2__20'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=</2___2__5__1__20'(A, B, C, D, E, F, G).
'known/1_1_$special_=</2___2__5__2__20'([A|T], B, U, D, G, V, F, S, H) :-
	(   A=suspension(_, active, _, _, _, C, E),
	    A\==B,
	    ( C==D,
	      E==F
	    ),
	    I=t(188, G, A, H, B),
	    '$novel_production'(G, I),
	    '$novel_production'(A, I),
	    '$novel_production'(H, I),
	    '$novel_production'(B, I)
	->  '$extend_history'(H, I),
	    ( arg(2, H, L),
	      setarg(2, H, active),
	      ( arg(4, H, J),
		K is J+1,
		setarg(4, H, K)
	      ),
	      (   L==not_stored_yet
	      ->  H=suspension(_, _, _, _, _, M, N),
		  term_variables(term(M, N), O),
		  'chr none_locked'(O),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      P),
		    Q=[H|P],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     Q),
		    (   P=[R|_]
		    ->  setarg(5, R, Q)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=</2___2'(O, H)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=\\=/2'(D, S),
	    (   H=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, H, inactive),
		'known/1_1_$special_=</2___2__5__2__20'(T,
							B,
							U,
							D,
							G,
							V,
							F,
							S,
							H)
	    ;   true
	    )
	;   'known/1_1_$special_=</2___2__5__2__20'(T, B, U, D, G, V, F, S, H)
	).
'known/1_1_$special_=</2___2__5'(A, B, C) :-
	'known/1_1_$special_=</2___2__6'(A, B, C).
'known/1_1_$special_=</2___2__6'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H=<I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=</2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=</2___2__6'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_=</2___2__6__0__22'(E, A, B, F).
'known/1_1_$special_=</2___2__6__0__22'([], A, B, C) :-
	'known/1_1_$special_=</2___2__7'(A, B, C).
'known/1_1_$special_=</2___2__6__0__22'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D=<F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(4, O, P),
		Q is P+1,
		setarg(4, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(5, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=</2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, _, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_=</2___2__6__0__22'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=</2___2__6__0__22'(Z, E, G, O)
	).
'known/1_1_$special_=</2___2__6'(A, B, C) :-
	'known/1_1_$special_=</2___2__7'(A, B, C).
'known/1_1_$special_=</2___2__7'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_=</2___2__7__0__23'(E, A, B, F).
'known/1_1_$special_=</2___2__7__0__23'([], A, B, C) :-
	'known/1_1_$special_=</2___2__8'(A, B, C).
'known/1_1_$special_=</2___2__7__0__23'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E=<G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(4, P, Q),
		R is Q+1,
		setarg(4, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(5, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=</2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, _, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_=</2___2__7__0__23'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=</2___2__7__0__23'(A1, F, H, P)
	).
'known/1_1_$special_=</2___2__7'(A, B, C) :-
	'known/1_1_$special_=</2___2__8'(A, B, C).
'known/1_1_$special_=</2___2__8'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_=</2___2'(G, A)
	;   true
	).
'known/1_1_$special_=:=/2'(A, B) :-
	'known/1_1_$special_=:=/2___2__0'(A, B, _).
'known/1_1_$special_=:=/2___2__0'(A, B, I) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, E)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	(   var(I)
	->  true
	;   I=suspension(_, J, _, _, _, K, L),
	    setarg(2, I, removed),
	    (   J==not_stored_yet
	    ->  M=[]
	    ;   term_variables(term(K, L), M),
		( arg(5, I, N),
		  (   var(N)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
				O),
		      O=[_|P],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			       P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, _)
		      ;   true
		      )
		  ;   N=[_, _|P],
		      setarg(2, N, P),
		      (   P=[Q|_]
		      ->  setarg(5, Q, N)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=:=/2___2'(M, I)
	    )
	).
'known/1_1_$special_=:=/2___2__0'(_, _, C) :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=:=/2___2'(G, C)
	    )
	).
'known/1_1_$special_=:=/2___2__0'(B, A, C) :-
	A==B, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=:=/2___2'(G, C)
	    )
	).
'known/1_1_$special_=:=/2___2__0'(B, A, C) :-
	number(A),
	number(B),
	B=\=A, !,
	(   var(C)
	->  true
	;   C=suspension(_, D, _, _, _, E, F),
	    setarg(2, C, removed),
	    (   D==not_stored_yet
	    ->  G=[]
	    ;   term_variables(term(E, F), G),
		( arg(5, C, H),
		  (   var(H)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
				I),
		      I=[_|J],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			       J),
		      (   J=[K|_]
		      ->  setarg(5, K, _)
		      ;   true
		      )
		  ;   H=[_, _|J],
		      setarg(2, H, J),
		      (   J=[K|_]
		      ->  setarg(5, K, H)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=:=/2___2'(G, C)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=:=/2___2__0'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G, H),
	G==A,
	H==B, !,
	F=suspension(_, _, _, _, _, I, J),
	setarg(2, F, removed),
	term_variables(term(I, J), O),
	arg(5, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		     M),
	    (   M=[N|_]
	    ->  setarg(5, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(5, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_=\\=/2___2'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=:=/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=:=/2___2__0'(F, A, E) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      D)
	), !,
	(   var(E)
	->  E=suspension(G, not_stored_yet, t, 0, _, F, A),
	    'chr gen_id'(G)
	;   true
	),
	'known/1_1_$special_=:=/2___2__0__0__11'(D, F, A, E).
'known/1_1_$special_=:=/2___2__0__0__11'([], A, B, C) :-
	'known/1_1_$special_=:=/2___2__1'(A, B, C).
'known/1_1_$special_=:=/2___2__0__0__11'([A|Q], F, C, D) :-
	(   A=suspension(_, active, _, _, _, B, G),
	    B==C,
	    ( E=t(193, D, A),
	      '$novel_production'(D, E),
	      '$novel_production'(A, E)
	    ),
	    F\==G
	->  '$extend_history'(D, E),
	    ( arg(2, D, J),
	      setarg(2, D, active),
	      ( arg(4, D, H),
		I is H+1,
		setarg(4, D, I)
	      ),
	      (   J==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, K, L),
		  term_variables(term(K, L), M),
		  'chr none_locked'(M),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			      N),
		    O=[D|N],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			     O),
		    (   N=[P|_]
		    ->  setarg(5, P, O)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=:=/2___2'(M, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=:=/2'(F, G),
	    (   D=suspension(_, active, _, I, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=:=/2___2__0__0__11'(Q, F, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2___2__0__0__11'(Q, F, C, D)
	).
'known/1_1_$special_=:=/2___2__0'(B, C, A) :-
	(   var(A)
	->  A=suspension(D, not_stored_yet, t, 0, _, B, C),
	    'chr gen_id'(D)
	;   true
	),
	'known/1_1_$special_=:=/2___2__1'(B, C, A).
'known/1_1_$special_=:=/2___2__1'(A, E, F) :-
	(   'chr newvia_1'(A, B)
	->  get_attr(B, guard_entailment, C),
	    C=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, D)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		      D)
	), !,
	'known/1_1_$special_=:=/2___2__1__0__12'(D, A, E, F).
'known/1_1_$special_=:=/2___2__1__0__12'([], A, B, C) :-
	'known/1_1_$special_=:=/2___2__2'(A, B, C).
'known/1_1_$special_=:=/2___2__1__0__12'([A|Q], C, G, D) :-
	(   A=suspension(_, active, _, _, _, F, B),
	    B==C,
	    ( E=t(193, A, D),
	      '$novel_production'(A, E),
	      '$novel_production'(D, E)
	    ),
	    F\==G
	->  '$extend_history'(D, E),
	    ( arg(2, D, J),
	      setarg(2, D, active),
	      ( arg(4, D, H),
		I is H+1,
		setarg(4, D, I)
	      ),
	      (   J==not_stored_yet
	      ->  D=suspension(_, _, _, _, _, K, L),
		  term_variables(term(K, L), M),
		  'chr none_locked'(M),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			      N),
		    O=[D|N],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			     O),
		    (   N=[P|_]
		    ->  setarg(5, P, O)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=:=/2___2'(M, D)
	      ;   true
	      )
	    ),
	    'known/1_1_$special_=:=/2'(F, G),
	    (   D=suspension(_, active, _, I, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=:=/2___2__1__0__12'(Q, C, G, D)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2___2__1__0__12'(Q, C, G, D)
	).
'known/1_1_$special_=:=/2___2__1'(A, B, C) :-
	'known/1_1_$special_=:=/2___2__2'(A, B, C).
'known/1_1_$special_=:=/2___2__2'(L, K, A) :-
	'$novel_production'(A, 194), !,
	'$extend_history'(A, 194),
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_=:=/2___2'(G, A)
	;   true
	),
	'known/1_1_$special_=:=/2'(K, L),
	(   A=suspension(_, active, _, C, _, _, _)
	->  setarg(2, A, inactive),
	    'known/1_1_$special_=:=/2___2__3'(L, K, A)
	;   true
	).
'known/1_1_$special_=:=/2___2__2'(A, B, C) :-
	'known/1_1_$special_=:=/2___2__3'(A, B, C).
'known/1_1_$special_=:=/2___2__3'(A, B, P) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, E, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	nonvar(G),
	G= (H=:=I),
	H==A,
	I==B, !,
	F=suspension(_, _, _, _, J),
	setarg(2, F, removed),
	term_variables(J, O),
	arg(4, F, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		      L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		     M),
	    (   M=[N|_]
	    ->  setarg(4, N, _)
	    ;   true
	    )
	;   K=[_, _|M],
	    setarg(2, K, M),
	    (   M=[N|_]
	    ->  setarg(4, N, K)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\+/1___1'(O, F),
	(   var(P)
	->  true
	;   P=suspension(_, Q, _, _, _, R, S),
	    setarg(2, P, removed),
	    (   Q==not_stored_yet
	    ->  T=[]
	    ;   term_variables(term(R, S), T),
		( arg(5, P, U),
		  (   var(U)
		  ->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
				V),
		      V=[_|W],
		      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			       W),
		      (   W=[X|_]
		      ->  setarg(5, X, _)
		      ;   true
		      )
		  ;   U=[_, _|W],
		      setarg(2, U, W),
		      (   W=[X|_]
		      ->  setarg(5, X, U)
		      ;   true
		      )
		  )
		),
		'detach_known/1_1_$special_=:=/2___2'(T, P)
	    )
	),
	'known/1_1_$special_fail/0'.
'known/1_1_$special_=:=/2___2__3'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_=:=/2___2__3__0__15'(E, A, B, F).
'known/1_1_$special_=:=/2___2__3__0__15'([], A, B, C) :-
	'known/1_1_$special_=:=/2___2__4'(A, B, C).
'known/1_1_$special_=:=/2___2__3__0__15'([A|Z], E, G, O) :-
	(   A=suspension(_, active, _, _, B, Y),
	    nonvar(B),
	    B= (\+C),
	    nonvar(C),
	    C= (D=:=F),
	    D==E,
	    F==G
	->  ( A=suspension(_, _, _, _, H, I),
	      setarg(2, A, removed),
	      term_variables(term(H, I), N),
	      ( arg(4, A, J),
		(   var(J)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      K),
		    K=[_|L],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     L),
		    (   L=[M|_]
		    ->  setarg(4, M, _)
		    ;   true
		    )
		;   J=[_, _|L],
		    setarg(2, J, L),
		    (   L=[M|_]
		    ->  setarg(4, M, J)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(N, A)
	    ),
	    ( arg(2, O, R),
	      setarg(2, O, active),
	      ( arg(4, O, P),
		Q is P+1,
		setarg(4, O, Q)
	      ),
	      (   R==not_stored_yet
	      ->  O=suspension(_, _, _, _, _, S, T),
		  term_variables(term(S, T), U),
		  'chr none_locked'(U),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			      V),
		    W=[O|V],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			     W),
		    (   V=[X|_]
		    ->  setarg(5, X, W)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=:=/2___2'(U, O)
	      ;   true
	      )
	    ),
	    known(Y),
	    (   O=suspension(_, active, _, Q, _, _, _)
	    ->  setarg(2, O, inactive),
		'known/1_1_$special_=:=/2___2__3__0__15'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2___2__3__0__15'(Z, E, G, O)
	).
'known/1_1_$special_=:=/2___2__3'(A, B, C) :-
	'known/1_1_$special_=:=/2___2__4'(A, B, C).
'known/1_1_$special_=:=/2___2__4'(A, B, F) :-
	(   'chr newvia_2'(A, B, C)
	->  get_attr(C, guard_entailment, D),
	    D=v(_, _, _, E, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		      E)
	), !,
	'known/1_1_$special_=:=/2___2__4__0__16'(E, A, B, F).
'known/1_1_$special_=:=/2___2__4__0__16'([], A, B, C) :-
	'known/1_1_$special_=:=/2___2__5'(A, B, C).
'known/1_1_$special_=:=/2___2__4__0__16'([A|A1], F, H, P) :-
	(   A=suspension(_, active, _, _, B, Z),
	    nonvar(B),
	    B= (C, _),
	    nonvar(C),
	    C= (\+D),
	    nonvar(D),
	    D= (E=:=G),
	    E==F,
	    G==H
	->  ( A=suspension(_, _, _, _, I, J),
	      setarg(2, A, removed),
	      term_variables(term(I, J), O),
	      ( arg(4, A, K),
		(   var(K)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      L),
		    L=[_|M],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     M),
		    (   M=[N|_]
		    ->  setarg(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(O, A)
	    ),
	    ( arg(2, P, S),
	      setarg(2, P, active),
	      ( arg(4, P, Q),
		R is Q+1,
		setarg(4, P, R)
	      ),
	      (   S==not_stored_yet
	      ->  P=suspension(_, _, _, _, _, T, U),
		  term_variables(term(T, U), V),
		  'chr none_locked'(V),
		  ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			      W),
		    X=[P|W],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			     X),
		    (   W=[Y|_]
		    ->  setarg(5, Y, X)
		    ;   true
		    )
		  ),
		  'attach_known/1_1_$special_=:=/2___2'(V, P)
	      ;   true
	      )
	    ),
	    known(Z),
	    (   P=suspension(_, active, _, R, _, _, _)
	    ->  setarg(2, P, inactive),
		'known/1_1_$special_=:=/2___2__4__0__16'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2___2__4__0__16'(A1, F, H, P)
	).
'known/1_1_$special_=:=/2___2__4'(A, B, C) :-
	'known/1_1_$special_=:=/2___2__5'(A, B, C).
'known/1_1_$special_=:=/2___2__5'(_, _, A) :-
	arg(2, A, D),
	setarg(2, A, active),
	arg(4, A, B),
	C is B+1,
	setarg(4, A, C),
	(   D==not_stored_yet
	->  A=suspension(_, _, _, _, _, E, F),
	    term_variables(term(E, F), G),
	    'chr none_locked'(G),
	    ( nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			H),
	      I=[A|H],
	      b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		       I),
	      (   H=[J|_]
	      ->  setarg(5, J, I)
	      ;   true
	      )
	    ),
	    'attach_known/1_1_$special_=:=/2___2'(G, A)
	;   true
	).
'known/1_1_$special_fail/0' :-
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  A),
	'chr sbag_member'(B, A),
	B=suspension(_, active, _), !.
'known/1_1_$special_fail/0' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__0__0__24'(A).
'known/1_1_$special_fail/0___0__0__0__24'([]) :-
	'known/1_1_$special_fail/0___0__1'.
'known/1_1_$special_fail/0___0__0__0__24'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(4, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_;/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(4, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(4, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_;/2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__0__0__24'(I)
	;   'known/1_1_$special_fail/0___0__0__0__24'(I)
	).
'known/1_1_$special_fail/0' :-
	'known/1_1_$special_fail/0___0__1'.
'known/1_1_$special_fail/0___0__1' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__1__0__25'(A).
'known/1_1_$special_fail/0___0__1__0__25'([]) :-
	'known/1_1_$special_fail/0___0__2'.
'known/1_1_$special_fail/0___0__1__0__25'([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_nonvar/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_nonvar/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__1__0__25'(H)
	;   'known/1_1_$special_fail/0___0__1__0__25'(H)
	).
'known/1_1_$special_fail/0___0__1' :-
	'known/1_1_$special_fail/0___0__2'.
'known/1_1_$special_fail/0___0__2' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__2__0__26'(A).
'known/1_1_$special_fail/0___0__2__0__26'([]) :-
	'known/1_1_$special_fail/0___0__3'.
'known/1_1_$special_fail/0___0__2__0__26'([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_var/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_var/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__2__0__26'(H)
	;   'known/1_1_$special_fail/0___0__2__0__26'(H)
	).
'known/1_1_$special_fail/0___0__2' :-
	'known/1_1_$special_fail/0___0__3'.
'known/1_1_$special_fail/0___0__3' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__3__0__27'(A).
'known/1_1_$special_fail/0___0__3__0__27'([]) :-
	'known/1_1_$special_fail/0___0__4'.
'known/1_1_$special_fail/0___0__3__0__27'([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atom/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_atom/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__3__0__27'(H)
	;   'known/1_1_$special_fail/0___0__3__0__27'(H)
	).
'known/1_1_$special_fail/0___0__3' :-
	'known/1_1_$special_fail/0___0__4'.
'known/1_1_$special_fail/0___0__4' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__4__0__28'(A).
'known/1_1_$special_fail/0___0__4__0__28'([]) :-
	'known/1_1_$special_fail/0___0__5'.
'known/1_1_$special_fail/0___0__4__0__28'([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_atomic/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_atomic/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__4__0__28'(H)
	;   'known/1_1_$special_fail/0___0__4__0__28'(H)
	).
'known/1_1_$special_fail/0___0__4' :-
	'known/1_1_$special_fail/0___0__5'.
'known/1_1_$special_fail/0___0__5' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__5__0__29'(A).
'known/1_1_$special_fail/0___0__5__0__29'([]) :-
	'known/1_1_$special_fail/0___0__6'.
'known/1_1_$special_fail/0___0__5__0__29'([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_compound/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_compound/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__5__0__29'(H)
	;   'known/1_1_$special_fail/0___0__5__0__29'(H)
	).
'known/1_1_$special_fail/0___0__5' :-
	'known/1_1_$special_fail/0___0__6'.
'known/1_1_$special_fail/0___0__6' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__6__0__30'(A).
'known/1_1_$special_fail/0___0__6__0__30'([]) :-
	'known/1_1_$special_fail/0___0__7'.
'known/1_1_$special_fail/0___0__6__0__30'([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_ground/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_ground/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__6__0__30'(H)
	;   'known/1_1_$special_fail/0___0__6__0__30'(H)
	).
'known/1_1_$special_fail/0___0__6' :-
	'known/1_1_$special_fail/0___0__7'.
'known/1_1_$special_fail/0___0__7' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__7__0__31'(A).
'known/1_1_$special_fail/0___0__7__0__31'([]) :-
	'known/1_1_$special_fail/0___0__8'.
'known/1_1_$special_fail/0___0__7__0__31'([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_integer/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_integer/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__7__0__31'(H)
	;   'known/1_1_$special_fail/0___0__7__0__31'(H)
	).
'known/1_1_$special_fail/0___0__7' :-
	'known/1_1_$special_fail/0___0__8'.
'known/1_1_$special_fail/0___0__8' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__8__0__32'(A).
'known/1_1_$special_fail/0___0__8__0__32'([]) :-
	'known/1_1_$special_fail/0___0__9'.
'known/1_1_$special_fail/0___0__8__0__32'([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_float/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_float/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__8__0__32'(H)
	;   'known/1_1_$special_fail/0___0__8__0__32'(H)
	).
'known/1_1_$special_fail/0___0__8' :-
	'known/1_1_$special_fail/0___0__9'.
'known/1_1_$special_fail/0___0__9' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__9__0__33'(A).
'known/1_1_$special_fail/0___0__9__0__33'([]) :-
	'known/1_1_$special_fail/0___0__10'.
'known/1_1_$special_fail/0___0__9__0__33'([A|H]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(5, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_number/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(5, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(5, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_number/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__9__0__33'(H)
	;   'known/1_1_$special_fail/0___0__9__0__33'(H)
	).
'known/1_1_$special_fail/0___0__9' :-
	'known/1_1_$special_fail/0___0__10'.
'known/1_1_$special_fail/0___0__10' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__10__0__34'(A).
'known/1_1_$special_fail/0___0__10__0__34'([]) :-
	'known/1_1_$special_fail/0___0__11'.
'known/1_1_$special_fail/0___0__10__0__34'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=\\=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=\\=/2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__10__0__34'(I)
	;   'known/1_1_$special_fail/0___0__10__0__34'(I)
	).
'known/1_1_$special_fail/0___0__10' :-
	'known/1_1_$special_fail/0___0__11'.
'known/1_1_$special_fail/0___0__11' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
		  A), !,
	'known/1_1_$special_fail/0___0__11__0__35'(A).
'known/1_1_$special_fail/0___0__11__0__35'([]) :-
	'known/1_1_$special_fail/0___0__12'.
'known/1_1_$special_fail/0___0__11__0__35'([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\+/1___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_\\+/1___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__11__0__35'(H)
	;   'known/1_1_$special_fail/0___0__11__0__35'(H)
	).
'known/1_1_$special_fail/0___0__11' :-
	'known/1_1_$special_fail/0___0__12'.
'known/1_1_$special_fail/0___0__12' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
		  A), !,
	'known/1_1_$special_fail/0___0__12__0__36'(A).
'known/1_1_$special_fail/0___0__12__0__36'([]) :-
	'known/1_1_$special_fail/0___0__13'.
'known/1_1_$special_fail/0___0__12__0__36'([A|J]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, B, C, D),
	      setarg(2, A, removed),
	      term_variables(term(B, C, D), I),
	      ( arg(4, A, E),
		(   var(E)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			      F),
		    F=[_|G],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_functor/3___3',
			     G),
		    (   G=[H|_]
		    ->  setarg(4, H, _)
		    ;   true
		    )
		;   E=[_, _|G],
		    setarg(2, E, G),
		    (   G=[H|_]
		    ->  setarg(4, H, E)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_functor/3___3'(I, A)
	    ),
	    'known/1_1_$special_fail/0___0__12__0__36'(J)
	;   'known/1_1_$special_fail/0___0__12__0__36'(J)
	).
'known/1_1_$special_fail/0___0__12' :-
	'known/1_1_$special_fail/0___0__13'.
'known/1_1_$special_fail/0___0__13' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__13__0__37'(A).
'known/1_1_$special_fail/0___0__13__0__37'([]) :-
	'known/1_1_$special_fail/0___0__14'.
'known/1_1_$special_fail/0___0__13__0__37'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_\\=/2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__13__0__37'(I)
	;   'known/1_1_$special_fail/0___0__13__0__37'(I)
	).
'known/1_1_$special_fail/0___0__13' :-
	'known/1_1_$special_fail/0___0__14'.
'known/1_1_$special_fail/0___0__14' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__14__0__38'(A).
'known/1_1_$special_fail/0___0__14__0__38'([]) :-
	'known/1_1_$special_fail/0___0__15'.
'known/1_1_$special_fail/0___0__14__0__38'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _)
	->  ( A=suspension(_, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(4, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(4, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(4, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=/2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__14__0__38'(I)
	;   'known/1_1_$special_fail/0___0__14__0__38'(I)
	).
'known/1_1_$special_fail/0___0__14' :-
	'known/1_1_$special_fail/0___0__15'.
'known/1_1_$special_fail/0___0__15' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__15__0__40'(A).
'known/1_1_$special_fail/0___0__15__0__40'([]) :-
	'known/1_1_$special_fail/0___0__16'.
'known/1_1_$special_fail/0___0__15__0__40'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_\\==/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_\\==/2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__15__0__40'(I)
	;   'known/1_1_$special_fail/0___0__15__0__40'(I)
	).
'known/1_1_$special_fail/0___0__15' :-
	'known/1_1_$special_fail/0___0__16'.
'known/1_1_$special_fail/0___0__16' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__16__0__41'(A).
'known/1_1_$special_fail/0___0__16__0__41'([]) :-
	'known/1_1_$special_fail/0___0__17'.
'known/1_1_$special_fail/0___0__16__0__41'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_==/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_==/2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__16__0__41'(I)
	;   'known/1_1_$special_fail/0___0__16__0__41'(I)
	).
'known/1_1_$special_fail/0___0__16' :-
	'known/1_1_$special_fail/0___0__17'.
'known/1_1_$special_fail/0___0__17' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__17__0__46'(A).
'known/1_1_$special_fail/0___0__17__0__46'([]) :-
	'known/1_1_$special_fail/0___0__18'.
'known/1_1_$special_fail/0___0__17__0__46'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=</2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=</2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__17__0__46'(I)
	;   'known/1_1_$special_fail/0___0__17__0__46'(I)
	).
'known/1_1_$special_fail/0___0__17' :-
	'known/1_1_$special_fail/0___0__18'.
'known/1_1_$special_fail/0___0__18' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
		  A), !,
	'known/1_1_$special_fail/0___0__18__0__47'(A).
'known/1_1_$special_fail/0___0__18__0__47'([]) :-
	'known/1_1_$special_fail/0___0__19'.
'known/1_1_$special_fail/0___0__18__0__47'([A|I]) :-
	(   A=suspension(_, active, _, _, _, _, _)
	->  ( A=suspension(_, _, _, _, _, B, C),
	      setarg(2, A, removed),
	      term_variables(term(B, C), H),
	      ( arg(5, A, D),
		(   var(D)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			      E),
		    E=[_|F],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$special_=:=/2___2',
			     F),
		    (   F=[G|_]
		    ->  setarg(5, G, _)
		    ;   true
		    )
		;   D=[_, _|F],
		    setarg(2, D, F),
		    (   F=[G|_]
		    ->  setarg(5, G, D)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$special_=:=/2___2'(H, A)
	    ),
	    'known/1_1_$special_fail/0___0__18__0__47'(I)
	;   'known/1_1_$special_fail/0___0__18__0__47'(I)
	).
'known/1_1_$special_fail/0___0__18' :-
	'known/1_1_$special_fail/0___0__19'.
'known/1_1_$special_fail/0___0__19' :-
	nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
		  A), !,
	'known/1_1_$special_fail/0___0__19__0__50'(A).
'known/1_1_$special_fail/0___0__19__0__50'([]) :-
	'known/1_1_$special_fail/0___0__20'.
'known/1_1_$special_fail/0___0__19__0__50'([A|H]) :-
	(   A=suspension(_, active, _, _, _)
	->  ( A=suspension(_, _, _, _, B),
	      setarg(2, A, removed),
	      term_variables(B, G),
	      ( arg(4, A, C),
		(   var(C)
		->  nb_getval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			      D),
		    D=[_|E],
		    b_setval('$chr_store_global_list_guard_entailment____known/1_1_$default___1',
			     E),
		    (   E=[F|_]
		    ->  setarg(4, F, _)
		    ;   true
		    )
		;   C=[_, _|E],
		    setarg(2, C, E),
		    (   E=[F|_]
		    ->  setarg(4, F, C)
		    ;   true
		    )
		)
	      ),
	      'detach_known/1_1_$default___1'(G, A)
	    ),
	    'known/1_1_$special_fail/0___0__19__0__50'(H)
	;   'known/1_1_$special_fail/0___0__19__0__50'(H)
	).
'known/1_1_$special_fail/0___0__19' :-
	'known/1_1_$special_fail/0___0__20'.
'known/1_1_$special_fail/0___0__20' :-
	B=suspension(A, active, _),
	'chr gen_id'(A),
	nb_getval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		  C),
	D=[B|C],
	b_setval('$chr_store_global_ground_guard_entailment____known/1_1_$special_fail/0___0',
		 D),
	(   C=[E|_]
	->  setarg(3, E, D)
	;   true
	).
:- (multifile chr:'$chr_module'/1).
chr:'$chr_module'(guard_entailment).
end_of_file.
