/*  Generated by CHR bootstrap compiler
    From: guard_entailment.chr
    Date: Thu Mar 13 02:27:08 2008

    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(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, H, B, G, I) :-
	copy_term_nat((A, B), (C, E)),
	term_variables(C, D),
	variables(D),
	entails_guard2(C), !,
	simplify(E, F),
	simplified(B, F, G, H, I), !,
	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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, [D|E], F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/1,
		put_attr(A, guard_entailment, v(Z, [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, v(1, [D], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_variables/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, [E|F], G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/2,
		put_attr(A, guard_entailment, v(Z, 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, v(2, [], [E], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$default/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, [F|G], H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/4,
		put_attr(A, guard_entailment, v(Z, 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, v(4, [], [], [F], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_;/2/2'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, [G|H], I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/8,
		put_attr(A, guard_entailment, v(Z, 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, v(8, [], [], [], [G], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_nonvar/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, [H|I], J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/16,
		put_attr(A, guard_entailment, v(Z, 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, v(16, [], [], [], [], [H], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_var/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, [I|J], K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/32,
		put_attr(A, guard_entailment, v(Z, 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, v(32, [], [], [], [], [], [I], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_atom/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, [J|K], L, M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/64,
		put_attr(A, guard_entailment, v(Z, 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, v(64, [], [], [], [], [], [], [J], [], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_atomic/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, [K|L], M, N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/128,
		put_attr(A, guard_entailment, v(Z, 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, v(128, [], [], [], [], [], [], [], [K], [], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_compound/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, [L|M], N, O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/256,
		put_attr(A, guard_entailment, v(Z, 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, v(256, [], [], [], [], [], [], [], [], [L], [], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_ground/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, [M|N], O, P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/512,
		put_attr(A, guard_entailment, v(Z, 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, v(512, [], [], [], [], [], [], [], [], [], [M], [], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_integer/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, [N|O], P, Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/1024,
		put_attr(A, guard_entailment, v(Z, 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, v(1024, [], [], [], [], [], [], [], [], [], [], [N], [], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_float/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, [O|P], Q, R, S, T, U, V, W, X, Y))
	    ;   Z is C\/2048,
		put_attr(A, guard_entailment, v(Z, 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, v(2048, [], [], [], [], [], [], [], [], [], [], [], [O], [], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_number/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, [P|Q], R, S, T, U, V, W, X, Y))
	    ;   Z is C\/4096,
		put_attr(A, guard_entailment, v(Z, 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, v(4096, [], [], [], [], [], [], [], [], [], [], [], [], [P], [], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_=\\=/2/2'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, [Q|R], S, T, U, V, W, X, Y))
	    ;   Z is C\/8192,
		put_attr(A, guard_entailment, v(Z, 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, v(8192, [], [], [], [], [], [], [], [], [], [], [], [], [], [Q], [], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_\\+/1/1'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, [R|S], T, U, V, W, X, Y))
	    ;   Z is C\/16384,
		put_attr(A, guard_entailment, v(Z, 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, v(16384, [], [], [], [], [], [], [], [], [], [], [], [], [], [], [R], [], [], [], [], [], []))
	),
	'attach_known/1_1_$special_functor/3/3'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, [S|T], U, V, W, X, Y))
	    ;   Z is C\/32768,
		put_attr(A, guard_entailment, v(Z, 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, v(32768, [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [S], [], [], [], [], []))
	),
	'attach_known/1_1_$special_\\=/2/2'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, [T|U], V, W, X, Y))
	    ;   Z is C\/65536,
		put_attr(A, guard_entailment, v(Z, 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, v(65536, [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [T], [], [], [], []))
	),
	'attach_known/1_1_$special_=/2/2'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, [U|V], W, X, Y))
	    ;   Z is C\/131072,
		put_attr(A, guard_entailment, v(Z, 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, v(131072, [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [U], [], [], []))
	),
	'attach_known/1_1_$special_\\==/2/2'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, [V|W], X, Y))
	    ;   Z is C\/262144,
		put_attr(A, guard_entailment, v(Z, 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, v(262144, [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [V], [], []))
	),
	'attach_known/1_1_$special_==/2/2'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, [W|X], Y))
	    ;   Z is C\/524288,
		put_attr(A, guard_entailment, v(Z, 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, v(524288, [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [W], []))
	),
	'attach_known/1_1_$special_=</2/2'(A1, 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|A1], 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
	    ->  put_attr(A, guard_entailment, v(C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, [X|Y]))
	    ;   Z is C\/1048576,
		put_attr(A, guard_entailment, v(Z, 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, v(1048576, [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [X]))
	),
	'attach_known/1_1_$special_=:=/2/2'(A1, 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|L3], v(N2, D, G, J, M, P, S, V, Y, B1, E1, H1, K1, N1, Q1, T1, W1, Z1, C2, F2, I2, L2)) :-
	'chr not_locked'(A),
	(   get_attr(A, guard_entailment, B)
	->  B=v(O2, C, F, I, L, O, R, U, X, A1, D1, G1, J1, M1, P1, S1, V1, Y1, B2, E2, H2, K2),
	    sort(C, E),
	    'chr merge_attributes'(D, E, Q2),
	    sort(F, H),
	    'chr merge_attributes'(G, H, R2),
	    sort(I, K),
	    'chr merge_attributes'(J, K, S2),
	    sort(L, N),
	    'chr merge_attributes'(M, N, T2),
	    sort(O, Q),
	    'chr merge_attributes'(P, Q, U2),
	    sort(R, T),
	    'chr merge_attributes'(S, T, V2),
	    sort(U, W),
	    'chr merge_attributes'(V, W, W2),
	    sort(X, Z),
	    'chr merge_attributes'(Y, Z, X2),
	    sort(A1, C1),
	    'chr merge_attributes'(B1, C1, Y2),
	    sort(D1, F1),
	    'chr merge_attributes'(E1, F1, Z2),
	    sort(G1, I1),
	    'chr merge_attributes'(H1, I1, A3),
	    sort(J1, L1),
	    'chr merge_attributes'(K1, L1, B3),
	    sort(M1, O1),
	    'chr merge_attributes'(N1, O1, C3),
	    sort(P1, R1),
	    'chr merge_attributes'(Q1, R1, D3),
	    sort(S1, U1),
	    'chr merge_attributes'(T1, U1, E3),
	    sort(V1, X1),
	    'chr merge_attributes'(W1, X1, F3),
	    sort(Y1, A2),
	    'chr merge_attributes'(Z1, A2, G3),
	    sort(B2, D2),
	    'chr merge_attributes'(C2, D2, H3),
	    sort(E2, G2),
	    'chr merge_attributes'(F2, G2, I3),
	    sort(H2, J2),
	    'chr merge_attributes'(I2, J2, J3),
	    sort(K2, M2),
	    'chr merge_attributes'(L2, M2, K3),
	    P2 is N2\/O2,
	    put_attr(A, guard_entailment, v(P2, Q2, R2, S2, T2, U2, V2, W2, X2, Y2, Z2, A3, B3, C3, D3, E3, F3, G3, H3, I3, J3, K3))
	;   put_attr(A, guard_entailment, v(N2, D, G, J, M, P, S, V, Y, B1, E1, H1, K1, N1, Q1, T1, W1, Z1, C2, F2, I2, L2))
	),
	attach_increment(L3, v(N2, D, G, J, M, P, S, V, Y, B1, E1, H1, K1, N1, Q1, T1, W1, Z1, C2, F2, I2, L2)).
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'(C) :-
	(   nb_getval('$chr_store_global_list_guard_entailment:variables/1', A),
	    'chr sbag_member'(B, A),
	    B=suspension(_, _, _, D),
	    C=variables(D)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$default/1', E),
	    'chr sbag_member'(F, E),
	    F=suspension(_, _, _, _, G),
	    C='known/1_1_$default'(G)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', H),
	    'chr sbag_member'(I, H),
	    I=suspension(_, _, _, _, J, K),
	    C='known/1_1_$special_;/2'(J, K)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_nonvar/1/1', L),
	    'chr sbag_member'(M, L),
	    M=suspension(_, _, _, _, N),
	    C='known/1_1_$special_nonvar/1'(N)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_var/1/1', O),
	    'chr sbag_member'(P, O),
	    P=suspension(_, _, _, _, Q),
	    C='known/1_1_$special_var/1'(Q)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atom/1/1', R),
	    'chr sbag_member'(S, R),
	    S=suspension(_, _, _, _, _, T),
	    C='known/1_1_$special_atom/1'(T)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atomic/1/1', U),
	    'chr sbag_member'(V, U),
	    V=suspension(_, _, _, _, _, W),
	    C='known/1_1_$special_atomic/1'(W)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_compound/1/1', X),
	    'chr sbag_member'(Y, X),
	    Y=suspension(_, _, _, _, _, Z),
	    C='known/1_1_$special_compound/1'(Z)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_ground/1/1', A1),
	    'chr sbag_member'(B1, A1),
	    B1=suspension(_, _, _, _, _, C1),
	    C='known/1_1_$special_ground/1'(C1)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_integer/1/1', D1),
	    'chr sbag_member'(E1, D1),
	    E1=suspension(_, _, _, _, _, F1),
	    C='known/1_1_$special_integer/1'(F1)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_float/1/1', G1),
	    'chr sbag_member'(H1, G1),
	    H1=suspension(_, _, _, _, _, I1),
	    C='known/1_1_$special_float/1'(I1)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_number/1/1', J1),
	    'chr sbag_member'(K1, J1),
	    K1=suspension(_, _, _, _, _, L1),
	    C='known/1_1_$special_number/1'(L1)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=\\=/2/2', M1),
	    'chr sbag_member'(N1, M1),
	    N1=suspension(_, _, _, _, _, O1, P1),
	    C='known/1_1_$special_=\\=/2'(O1, P1)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', Q1),
	    'chr sbag_member'(R1, Q1),
	    R1=suspension(_, _, _, _, S1),
	    C='known/1_1_$special_\\+/1'(S1)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', T1),
	    'chr sbag_member'(U1, T1),
	    U1=suspension(_, _, _, _, V1, W1, X1),
	    C='known/1_1_$special_functor/3'(V1, W1, X1)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\=/2/2', Y1),
	    'chr sbag_member'(Z1, Y1),
	    Z1=suspension(_, _, _, _, _, A2, B2),
	    C='known/1_1_$special_\\=/2'(A2, B2)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=/2/2', C2),
	    'chr sbag_member'(D2, C2),
	    D2=suspension(_, _, _, _, E2, F2),
	    C='known/1_1_$special_=/2'(E2, F2)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\==/2/2', G2),
	    'chr sbag_member'(H2, G2),
	    H2=suspension(_, _, _, _, _, I2, J2),
	    C='known/1_1_$special_\\==/2'(I2, J2)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_==/2/2', K2),
	    'chr sbag_member'(L2, K2),
	    L2=suspension(_, _, _, _, _, M2, N2),
	    C='known/1_1_$special_==/2'(M2, N2)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=</2/2', O2),
	    'chr sbag_member'(P2, O2),
	    P2=suspension(_, _, _, _, _, Q2, R2),
	    C='known/1_1_$special_=</2'(Q2, R2)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=:=/2/2', S2),
	    'chr sbag_member'(T2, S2),
	    T2=suspension(_, _, _, _, _, U2, V2),
	    C='known/1_1_$special_=:=/2'(U2, V2)
	;   nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0', W2),
	    'chr sbag_member'(X2, W2),
	    X2=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', []).
:- '$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).
known(A) :-
	nonvar(A),
	A=nonvar(B), !,
	'known/1_1_$special_nonvar/1'(B).
known(A) :-
	nonvar(A),
	A=var(B), !,
	'known/1_1_$special_var/1'(B).
known(A) :-
	nonvar(A),
	A=atom(B), !,
	'known/1_1_$special_atom/1'(B).
known(A) :-
	nonvar(A),
	A=atomic(B), !,
	'known/1_1_$special_atomic/1'(B).
known(A) :-
	nonvar(A),
	A=compound(B), !,
	'known/1_1_$special_compound/1'(B).
known(A) :-
	nonvar(A),
	A=ground(B), !,
	'known/1_1_$special_ground/1'(B).
known(A) :-
	nonvar(A),
	A=integer(B), !,
	'known/1_1_$special_integer/1'(B).
known(A) :-
	nonvar(A),
	A=float(B), !,
	'known/1_1_$special_float/1'(B).
known(A) :-
	nonvar(A),
	A=number(B), !,
	'known/1_1_$special_number/1'(B).
known(A) :-
	nonvar(A),
	A= (B=\=C), !,
	'known/1_1_$special_=\\=/2'(B, C).
known(A) :-
	nonvar(A),
	A= (\+B), !,
	'known/1_1_$special_\\+/1'(B).
known(A) :-
	nonvar(A),
	A=functor(B, C, D), !,
	'known/1_1_$special_functor/3'(B, C, D).
known(A) :-
	nonvar(A),
	A= (B\=C), !,
	'known/1_1_$special_\\=/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B=C), !,
	'known/1_1_$special_=/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B, C), !,
	'known/1_1_$special_,/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B\==C), !,
	'known/1_1_$special_\\==/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B==C), !,
	'known/1_1_$special_==/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B is C), !,
	'known/1_1_$special_is/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B<C), !,
	'known/1_1_$special_</2'(B, C).
known(A) :-
	nonvar(A),
	A= (B>=C), !,
	'known/1_1_$special_>=/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B>C), !,
	'known/1_1_$special_>/2'(B, C).
known(A) :-
	nonvar(A),
	A= (B=<C), !,
	'known/1_1_$special_=</2'(B, C).
known(A) :-
	nonvar(A),
	A= (B=:=C), !,
	'known/1_1_$special_=:=/2'(B, C).
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).
test(A) :-
	nonvar(A),
	A= (\+B), !,
	'test/1_1_$special_\\+/1'(B).
test(A) :-
	nonvar(A),
	A=integer(B), !,
	'test/1_1_$special_integer/1'(B).
test(A) :-
	nonvar(A),
	A=float(B), !,
	'test/1_1_$special_float/1'(B).
test(A) :-
	nonvar(A),
	A=number(B), !,
	'test/1_1_$special_number/1'(B).
test(A) :-
	nonvar(A),
	A=ground(B), !,
	'test/1_1_$special_ground/1'(B).
test(A) :-
	nonvar(A),
	A= (B=:=C), !,
	'test/1_1_$special_=:=/2'(B, C).
test(A) :-
	nonvar(A),
	A= (B==C), !,
	'test/1_1_$special_==/2'(B, C).
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).
test(A) :-
	nonvar(A),
	A= (B=C), !,
	'test/1_1_$special_=/2'(B, C).
test(A) :-
	nonvar(A),
	A= (B;C), !,
	'test/1_1_$special_;/2'(B, C).
test(A) :-
	nonvar(A),
	A= (B is C), !,
	'test/1_1_$special_is/2'(B, C).
test(A) :-
	nonvar(A),
	A= (B<C), !,
	'test/1_1_$special_</2'(B, C).
test(A) :-
	nonvar(A),
	A= (B>=C), !,
	'test/1_1_$special_>=/2'(B, C).
test(A) :-
	nonvar(A),
	A= (B>C), !,
	'test/1_1_$special_>/2'(B, C).
test(A) :-
	nonvar(A),
	A= (B=\=C), !,
	'test/1_1_$special_=\\=/2'(B, C).
test(A) :-
	nonvar(A),
	A= (B=<C), !,
	'test/1_1_$special_=</2'(B, C).
test(A) :-
	nonvar(A),
	A= (B\==C), !,
	'test/1_1_$special_\\==/2'(B, C).
test(A) :-
	'test/1_1_$default'(A).
cleanup :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	), !,
	'cleanup/0__0__0'(C).
'cleanup/0__0__0'([]) :-
	'cleanup/0__1'.
'cleanup/0__0__0'([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'(I)
	;   'cleanup/0__0__0'(I)
	).
cleanup :-
	'cleanup/0__1'.
'cleanup/0__1' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_nonvar/1/1', C)
	), !,
	'cleanup/0__1__0'(C).
'cleanup/0__1__0'([]) :-
	'cleanup/0__2'.
'cleanup/0__1__0'([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'(H)
	;   'cleanup/0__1__0'(H)
	).
'cleanup/0__1' :-
	'cleanup/0__2'.
'cleanup/0__2' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_var/1/1', C)
	), !,
	'cleanup/0__2__0'(C).
'cleanup/0__2__0'([]) :-
	'cleanup/0__3'.
'cleanup/0__2__0'([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'(H)
	;   'cleanup/0__2__0'(H)
	).
'cleanup/0__2' :-
	'cleanup/0__3'.
'cleanup/0__3' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atom/1/1', C)
	), !,
	'cleanup/0__3__0'(C).
'cleanup/0__3__0'([]) :-
	'cleanup/0__4'.
'cleanup/0__3__0'([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'(H)
	;   'cleanup/0__3__0'(H)
	).
'cleanup/0__3' :-
	'cleanup/0__4'.
'cleanup/0__4' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atomic/1/1', C)
	), !,
	'cleanup/0__4__0'(C).
'cleanup/0__4__0'([]) :-
	'cleanup/0__5'.
'cleanup/0__4__0'([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'(H)
	;   'cleanup/0__4__0'(H)
	).
'cleanup/0__4' :-
	'cleanup/0__5'.
'cleanup/0__5' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_compound/1/1', C)
	), !,
	'cleanup/0__5__0'(C).
'cleanup/0__5__0'([]) :-
	'cleanup/0__6'.
'cleanup/0__5__0'([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'(H)
	;   'cleanup/0__5__0'(H)
	).
'cleanup/0__5' :-
	'cleanup/0__6'.
'cleanup/0__6' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_ground/1/1', C)
	), !,
	'cleanup/0__6__0'(C).
'cleanup/0__6__0'([]) :-
	'cleanup/0__7'.
'cleanup/0__6__0'([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'(H)
	;   'cleanup/0__6__0'(H)
	).
'cleanup/0__6' :-
	'cleanup/0__7'.
'cleanup/0__7' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_integer/1/1', C)
	), !,
	'cleanup/0__7__0'(C).
'cleanup/0__7__0'([]) :-
	'cleanup/0__8'.
'cleanup/0__7__0'([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'(H)
	;   'cleanup/0__7__0'(H)
	).
'cleanup/0__7' :-
	'cleanup/0__8'.
'cleanup/0__8' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_float/1/1', C)
	), !,
	'cleanup/0__8__0'(C).
'cleanup/0__8__0'([]) :-
	'cleanup/0__9'.
'cleanup/0__8__0'([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'(H)
	;   'cleanup/0__8__0'(H)
	).
'cleanup/0__8' :-
	'cleanup/0__9'.
'cleanup/0__9' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_number/1/1', C)
	), !,
	'cleanup/0__9__0'(C).
'cleanup/0__9__0'([]) :-
	'cleanup/0__10'.
'cleanup/0__9__0'([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'(H)
	;   'cleanup/0__9__0'(H)
	).
'cleanup/0__9' :-
	'cleanup/0__10'.
'cleanup/0__10' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=\\=/2/2', C)
	), !,
	'cleanup/0__10__0'(C).
'cleanup/0__10__0'([]) :-
	'cleanup/0__11'.
'cleanup/0__10__0'([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'(I)
	;   'cleanup/0__10__0'(I)
	).
'cleanup/0__10' :-
	'cleanup/0__11'.
'cleanup/0__11' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', C)
	), !,
	'cleanup/0__11__0'(C).
'cleanup/0__11__0'([]) :-
	'cleanup/0__12'.
'cleanup/0__11__0'([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'(H)
	;   'cleanup/0__11__0'(H)
	).
'cleanup/0__11' :-
	'cleanup/0__12'.
'cleanup/0__12' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', C)
	), !,
	'cleanup/0__12__0'(C).
'cleanup/0__12__0'([]) :-
	'cleanup/0__13'.
'cleanup/0__12__0'([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'(J)
	;   'cleanup/0__12__0'(J)
	).
'cleanup/0__12' :-
	'cleanup/0__13'.
'cleanup/0__13' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\=/2/2', C)
	), !,
	'cleanup/0__13__0'(C).
'cleanup/0__13__0'([]) :-
	'cleanup/0__14'.
'cleanup/0__13__0'([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'(I)
	;   'cleanup/0__13__0'(I)
	).
'cleanup/0__13' :-
	'cleanup/0__14'.
'cleanup/0__14' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=/2/2', C)
	), !,
	'cleanup/0__14__0'(C).
'cleanup/0__14__0'([]) :-
	'cleanup/0__15'.
'cleanup/0__14__0'([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'(I)
	;   'cleanup/0__14__0'(I)
	).
'cleanup/0__14' :-
	'cleanup/0__15'.
'cleanup/0__15' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\==/2/2', C)
	), !,
	'cleanup/0__15__0'(C).
'cleanup/0__15__0'([]) :-
	'cleanup/0__16'.
'cleanup/0__15__0'([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'(I)
	;   'cleanup/0__15__0'(I)
	).
'cleanup/0__15' :-
	'cleanup/0__16'.
'cleanup/0__16' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_==/2/2', C)
	), !,
	'cleanup/0__16__0'(C).
'cleanup/0__16__0'([]) :-
	'cleanup/0__17'.
'cleanup/0__16__0'([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'(I)
	;   'cleanup/0__16__0'(I)
	).
'cleanup/0__16' :-
	'cleanup/0__17'.
'cleanup/0__17' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=</2/2', C)
	), !,
	'cleanup/0__17__0'(C).
'cleanup/0__17__0'([]) :-
	'cleanup/0__18'.
'cleanup/0__17__0'([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'(I)
	;   'cleanup/0__17__0'(I)
	).
'cleanup/0__17' :-
	'cleanup/0__18'.
'cleanup/0__18' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=:=/2/2', C)
	), !,
	'cleanup/0__18__0'(C).
'cleanup/0__18__0'([]) :-
	'cleanup/0__19'.
'cleanup/0__18__0'([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'(I)
	;   'cleanup/0__18__0'(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'(A).
'cleanup/0__19__0'([]) :-
	'cleanup/0__20'.
'cleanup/0__19__0'([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'(F)
	;   'cleanup/0__19__0'(F)
	).
'cleanup/0__19' :-
	'cleanup/0__20'.
'cleanup/0__20' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$default/1', C)
	), !,
	'cleanup/0__20__0'(C).
'cleanup/0__20__0'([]) :-
	'cleanup/0__21'.
'cleanup/0__20__0'([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'(H)
	;   'cleanup/0__20__0'(H)
	).
'cleanup/0__20' :-
	'cleanup/0__21'.
'cleanup/0__21' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:variables/1', C)
	), !,
	'cleanup/0__21__0'(C).
'cleanup/0__21__0'([]) :-
	'cleanup/0__22'.
'cleanup/0__21__0'([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'(H)
	;   'cleanup/0__21__0'(H)
	).
'cleanup/0__21' :-
	'cleanup/0__22'.
'cleanup/0__22'.
variables(A) :-
	'variables/1__0'(A, _).
'variables/1__0'(X, P) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, G, F, E),
	ground(E),
	ground(F),
	var(G), !,
	D=suspension(_, _, _, _, H, I, J),
	setarg(2, D, removed),
	term_variables(term(H, I, J), O),
	arg(4, D, K),
	(   var(K)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', L),
	    L=[_|M],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', 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_functor/3/3'(O, D),
	(   var(P)
	->  true
	;   P=suspension(_, _, _, Q),
	    setarg(2, P, removed),
	    term_variables(Q, V),
	    arg(3, P, R),
	    (   var(R)
	    ->  nb_getval('$chr_store_global_list_guard_entailment:variables/1', S),
		S=[_|T],
		b_setval('$chr_store_global_list_guard_entailment:variables/1', T),
		(   T=[U|_]
		->  setarg(3, U, _)
		;   true
		)
	    ;   R=[_, _|T],
		setarg(2, R, T),
		(   T=[U|_]
		->  setarg(3, U, R)
		;   true
		)
	    ),
	    'detach_variables/1'(V, P)
	),
	functor(G, F, E),
	G=..[_|W],
	append(W, X, Y),
	variables(Y).
'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, !.
'test/1_1_$default'(A) :-
	nonvar(A),
	A=var(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_var/1/1', E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, G),
	G==B, !.
'test/1_1_$default'(A) :-
	nonvar(A),
	A=atom(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_atom/1/1', E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G),
	G==B, !.
'test/1_1_$default'(A) :-
	nonvar(A),
	A=atomic(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_atomic/1/1', E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G),
	G==B, !.
'test/1_1_$default'(A) :-
	nonvar(A),
	A=compound(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_compound/1/1', E)
	),
	'chr sbag_member'(F, E),
	F=suspension(_, active, _, _, _, G),
	G==B, !.
'test/1_1_$default'(A) :-
	nonvar(A),
	A= (B\=C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, _, H, I),
	H==B,
	I==C, !.
'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'(M) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, O), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, M), !,
	negate_b(L, N),
	known(N),
	\+try(O, M).
'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.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=functor(B, _, _),
	nonvar(B), !.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=ground(B),
	ground(B), !,
	fail.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=number(B),
	number(B), !,
	fail.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=float(B),
	float(B), !,
	fail.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=integer(B),
	integer(B), !,
	fail.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=number(B),
	nonvar(B), !.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=float(B),
	nonvar(B), !.
'test/1_1_$special_\\+/1'(A) :-
	nonvar(A),
	A=integer(B),
	nonvar(B), !.
'test/1_1_$special_\\+/1'(M) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, O), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, \+M), !,
	negate_b(L, N),
	known(N),
	\+try(O, \+M).
'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'(M) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, O), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, integer(M)), !,
	negate_b(L, N),
	known(N),
	\+try(O, integer(M)).
'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'(M) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, O), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, float(M)), !,
	negate_b(L, N),
	known(N),
	\+try(O, float(M)).
'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'(M) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, O), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, number(M)), !,
	negate_b(L, N),
	known(N),
	\+try(O, number(M)).
'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'(M) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, O), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, ground(M)), !,
	negate_b(L, N),
	known(N),
	\+try(O, ground(M)).
'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, !.
'test/1_1_$special_=:=/2'(B, A) :-
	ground(A),
	ground(B), !,
	fail.
'test/1_1_$special_=:=/2'(M, N) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, P), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, M=:=N), !,
	negate_b(L, O),
	known(O),
	\+try(P, M=:=N).
'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'(M, N) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, P), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, M==N), !,
	negate_b(L, O),
	known(O),
	\+try(P, M==N).
'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),
	(   'chr newvia'([], D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:variables/1', F)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, H),
	'chr lock'(C),
	'chr lock'(H),
	\+memberchk_eq(C, H),
	'chr unlock'(C),
	'chr unlock'(H), !,
	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), !.
'test/1_1_$special_functor/3'(A, _, _) :-
	nonvar(A), !,
	fail.
'test/1_1_$special_functor/3'(M, N, O) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, Q), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, functor(M, N, O)), !,
	negate_b(L, P),
	known(P),
	\+try(Q, functor(M, N, O)).
'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'(M, N) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, P), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, M=N), !,
	negate_b(L, O),
	known(O),
	\+try(P, M=N).
'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(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((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(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(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, !.
'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, _, _, _, H, G),
	G==B,
	number(H),
	A<H, !.
'test/1_1_$special_=\\=/2'(B, A) :-
	ground(A),
	ground(B),
	B=\=A, !.
'test/1_1_$special_=\\=/2'(B, A) :-
	ground(A),
	ground(B), !,
	fail.
'test/1_1_$special_=\\=/2'(M, N) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, P), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, M=\=N), !,
	negate_b(L, O),
	known(O),
	\+try(P, M=\=N).
'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, !.
'test/1_1_$special_=</2'(B, A) :-
	ground(A),
	ground(B), !,
	fail.
'test/1_1_$special_=</2'(M, N) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, P), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, M=<N), !,
	negate_b(L, O),
	known(O),
	\+try(P, M=<N).
'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(B\==A).
'test/1_1_$special_\\==/2'(M, N) :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	),
	'chr sbag_member'(D, C),
	D=suspension(_, active, _, _, L, P), !,
	D=suspension(_, _, _, _, E, F),
	setarg(2, D, removed),
	term_variables(term(E, F), K),
	arg(4, D, 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, D),
	\+try(L, M\==N), !,
	negate_b(L, O),
	known(O),
	\+try(P, M\==N).
'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(fail).
'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'(D, A, E).
'known/1_1_$default/1__0__0'([], A, B) :-
	'known/1_1_$default/1__1'(A, B).
'known/1_1_$default/1__0__0'([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'(V, D, L)
	    ;   true
	    )
	;   'known/1_1_$default/1__0__0'(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'(D, A, E).
'known/1_1_$default/1__1__0'([], A, B) :-
	'known/1_1_$default/1__2'(A, B).
'known/1_1_$default/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$default/1__1__0'(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(fail).
'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'(E, A, B, F).
'known/1_1_$special_;/2/2__0__0'([], A, B, C) :-
	'known/1_1_$special_;/2/2__1'(A, B, C).
'known/1_1_$special_;/2/2__0__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_;/2/2__0__0'(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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=var(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_var/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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=atom(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_atom/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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=atomic(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_atomic/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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=compound(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_compound/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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=ground(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_ground/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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=integer(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_integer/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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=float(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_float/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).
'known/1_1_$special_;/2/2__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=number(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_number/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).
'known/1_1_$special_;/2/2__1'(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__1'(A, R, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B= (\+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_\\+/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).
'known/1_1_$special_;/2/2__1'(A, V, M) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=functor(C, D, E),
	(   'chr newvia'([C, D, E], F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, J, K, L),
	J==C,
	K==D,
	L==E, !,
	(   var(M)
	->  true
	;   M=suspension(_, N, _, _, O, P),
	    setarg(2, M, removed),
	    (   N==not_stored_yet
	    ->  Q=[]
	    ;   term_variables(term(O, P), Q),
		arg(4, M, R),
		(   var(R)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', S),
		    S=[_|T],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(Q, M)
	    )
	),
	known(V).
'known/1_1_$special_;/2/2__1'(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__1'(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__1'(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__1'(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__1'(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__1'(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__1'(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_$default/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__1'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D;E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, H, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'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'(E, A, B, F).
'known/1_1_$special_;/2/2__1__0'([], A, B, C) :-
	'known/1_1_$special_;/2/2__2'(A, B, C).
'known/1_1_$special_;/2/2__1__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_;/2/2__1__0'(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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=var(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_var/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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=atom(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_atom/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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=atomic(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_atomic/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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=compound(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_compound/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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=ground(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_ground/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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=integer(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_integer/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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=float(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_float/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).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=number(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_number/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).
'known/1_1_$special_;/2/2__2'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D=\=E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, H, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=\\=/2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'known/1_1_$special_;/2/2__2'(A, S, J) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (\+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_\\+/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).
'known/1_1_$special_;/2/2__2'(A, W, N) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C=functor(D, E, F),
	(   'chr newvia'([D, E, F], G)
	->  get_attr(G, guard_entailment, H),
	    H=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, I, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', I)
	),
	'chr sbag_member'(J, I),
	J=suspension(_, active, _, _, K, L, M),
	K==D,
	L==E,
	M==F, !,
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, P, Q),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  R=[]
	    ;   term_variables(term(P, Q), R),
		arg(4, N, S),
		(   var(S)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', T),
		    T=[_|U],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', U),
		    (   U=[V|_]
		    ->  setarg(4, V, _)
		    ;   true
		    )
		;   S=[_, _|U],
		    setarg(2, S, U),
		    (   U=[V|_]
		    ->  setarg(4, V, S)
		    ;   true
		    )
		),
		'detach_known/1_1_$special_;/2/2'(R, N)
	    )
	),
	known(W).
'known/1_1_$special_;/2/2__2'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D\=E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\=/2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'known/1_1_$special_;/2/2__2'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D=E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=/2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'known/1_1_$special_;/2/2__2'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D\==E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\==/2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'known/1_1_$special_;/2/2__2'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D==E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_==/2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'known/1_1_$special_;/2/2__2'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D=<E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=</2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'known/1_1_$special_;/2/2__2'(A, U, L) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+C),
	nonvar(C),
	C= (D=:=E),
	(   'chr newvia_2'(D, E, F)
	->  get_attr(F, guard_entailment, G),
	    G=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, H)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=:=/2/2', H)
	),
	'chr sbag_member'(I, H),
	I=suspension(_, active, _, _, _, J, K),
	J==D,
	K==E, !,
	(   var(L)
	->  true
	;   L=suspension(_, M, _, _, N, O),
	    setarg(2, L, removed),
	    (   M==not_stored_yet
	    ->  P=[]
	    ;   term_variables(term(N, O), P),
		arg(4, L, Q),
		(   var(Q)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', R),
		    R=[_|S],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', 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_;/2/2'(P, L)
	    )
	),
	known(U).
'known/1_1_$special_;/2/2__2'(A, R, I) :-
	nonvar(A),
	A= (B, _),
	nonvar(B),
	B= (\+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_$default/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).
'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, _, I) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=functor(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_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)
	    )
	).
'known/1_1_$special_;/2/2__2'(A, O, F) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=functor(C, D, E),
	nonvar(C),
	'chr lock'(C),
	'chr lock'(D),
	'chr lock'(E),
	functor(C, D, E),
	'chr unlock'(C),
	'chr unlock'(D),
	'chr unlock'(E), !,
	(   var(F)
	->  true
	;   F=suspension(_, G, _, _, H, I),
	    setarg(2, F, removed),
	    (   G==not_stored_yet
	    ->  J=[]
	    ;   term_variables(term(H, I), J),
		arg(4, 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(4, N, _)
		    ;   true
		    )
		;   K=[_, _|M],
		    setarg(2, K, M),
		    (   M=[N|_]
		    ->  setarg(4, N, K)
		    ;   true
		    )
		),
		'detach_known/1_1_$special_;/2/2'(J, F)
	    )
	),
	known(O).
'known/1_1_$special_;/2/2__2'(A, _, D) :-
	nonvar(A),
	A= (\+B),
	nonvar(B),
	B=functor(C, _, _),
	nonvar(C), !,
	(   var(D)
	->  true
	;   D=suspension(_, E, _, _, F, G),
	    setarg(2, D, removed),
	    (   E==not_stored_yet
	    ->  H=[]
	    ;   term_variables(term(F, G), H),
		arg(4, 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(4, L, _)
		    ;   true
		    )
		;   I=[_, _|K],
		    setarg(2, I, K),
		    (   K=[L|_]
		    ->  setarg(4, L, I)
		    ;   true
		    )
		),
		'detach_known/1_1_$special_;/2/2'(H, D)
	    )
	).
'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(fail).
'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(fail).
'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'(D, A, E).
'known/1_1_$special_nonvar/1/1__0__0'([], A, B) :-
	'known/1_1_$special_nonvar/1/1__1'(A, B).
'known/1_1_$special_nonvar/1/1__0__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_nonvar/1/1__0__0'(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'(D, A, E).
'known/1_1_$special_nonvar/1/1__1__0'([], A, B) :-
	'known/1_1_$special_nonvar/1/1__2'(A, B).
'known/1_1_$special_nonvar/1/1__1__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_nonvar/1/1__1__0'(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(fail).
'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(fail).
'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'(D, A, E).
'known/1_1_$special_var/1/1__0__0'([], A, B) :-
	'known/1_1_$special_var/1/1__1'(A, B).
'known/1_1_$special_var/1/1__0__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_var/1/1__0__0'(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'(D, A, E).
'known/1_1_$special_var/1/1__1__0'([], A, B) :-
	'known/1_1_$special_var/1/1__2'(A, B).
'known/1_1_$special_var/1/1__1__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_var/1/1__1__0'(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(fail).
'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(nonvar(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__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   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'(D, A, E).
'known/1_1_$special_atom/1/1__1__0'([], A, B) :-
	'known/1_1_$special_atom/1/1__2'(A, B).
'known/1_1_$special_atom/1/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_atom/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_atom/1/1__2__0'([], A, B) :-
	'known/1_1_$special_atom/1/1__3'(A, B).
'known/1_1_$special_atom/1/1__2__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_atom/1/1__2__0'(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(fail).
'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(nonvar(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__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   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'(D, A, E).
'known/1_1_$special_atomic/1/1__1__0'([], A, B) :-
	'known/1_1_$special_atomic/1/1__2'(A, B).
'known/1_1_$special_atomic/1/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_atomic/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_atomic/1/1__2__0'([], A, B) :-
	'known/1_1_$special_atomic/1/1__3'(A, B).
'known/1_1_$special_atomic/1/1__2__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_atomic/1/1__2__0'(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(fail).
'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(nonvar(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__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   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'(D, A, E).
'known/1_1_$special_compound/1/1__1__0'([], A, B) :-
	'known/1_1_$special_compound/1/1__2'(A, B).
'known/1_1_$special_compound/1/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_compound/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_compound/1/1__2__0'([], A, B) :-
	'known/1_1_$special_compound/1/1__3'(A, B).
'known/1_1_$special_compound/1/1__2__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_compound/1/1__2__0'(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(fail).
'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(nonvar(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__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   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'(D, A, E).
'known/1_1_$special_ground/1/1__1__0'([], A, B) :-
	'known/1_1_$special_ground/1/1__2'(A, B).
'known/1_1_$special_ground/1/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_ground/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_ground/1/1__2__0'([], A, B) :-
	'known/1_1_$special_ground/1/1__3'(A, B).
'known/1_1_$special_ground/1/1__2__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_ground/1/1__2__0'(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(fail).
'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(number(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__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   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(fail).
'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'(D, A, E).
'known/1_1_$special_integer/1/1__1__0'([], A, B) :-
	'known/1_1_$special_integer/1/1__2'(A, B).
'known/1_1_$special_integer/1/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_integer/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_integer/1/1__2__0'([], A, B) :-
	'known/1_1_$special_integer/1/1__3'(A, B).
'known/1_1_$special_integer/1/1__2__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_integer/1/1__2__0'(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(fail).
'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(number(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__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   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(fail).
'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'(D, A, E).
'known/1_1_$special_float/1/1__1__0'([], A, B) :-
	'known/1_1_$special_float/1/1__2'(A, B).
'known/1_1_$special_float/1/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_float/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_float/1/1__2__0'([], A, B) :-
	'known/1_1_$special_float/1/1__3'(A, B).
'known/1_1_$special_float/1/1__2__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_float/1/1__2__0'(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(fail).
'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(fail).
'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(nonvar(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__0'(B, A) :-
	(   var(A)
	->  A=suspension(C, not_stored_yet, t, 0, _, B),
	    'chr gen_id'(C)
	;   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'(D, A, E).
'known/1_1_$special_number/1/1__1__0'([], A, B) :-
	'known/1_1_$special_number/1/1__2'(A, B).
'known/1_1_$special_number/1/1__1__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_number/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_number/1/1__2__0'([], A, B) :-
	'known/1_1_$special_number/1/1__3'(A, B).
'known/1_1_$special_number/1/1__2__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_number/1/1__2__0'(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'(D, F, A, E).
'known/1_1_$special_=\\=/2/2__0__0'([], A, B, C) :-
	'known/1_1_$special_=\\=/2/2__1'(A, B, C).
'known/1_1_$special_=\\=/2/2__0__0'([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'(G, D, A, H, I, C, J)
	;   'known/1_1_$special_=\\=/2/2__0__0'(H, I, C, J)
	).
'known/1_1_$special_=\\=/2/2__0__1'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=\\=/2/2__0__0'(A, B, C, D).
'known/1_1_$special_=\\=/2/2__0__1'([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'(I, A, J, E, K, L, F, C, M)
	;   'known/1_1_$special_=\\=/2/2__0__1'(J, E, K, L, F, C, M)
	).
'known/1_1_$special_=\\=/2/2__0__2'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=\\=/2/2__0__1'(A, B, C, D, E, F, G).
'known/1_1_$special_=\\=/2/2__0__2'([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(D=\=S),
	    (   G=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, G, inactive),
		'known/1_1_$special_=\\=/2/2__0__2'(T, B, U, S, H, V, D, F, G)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2/2__0__2'(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'(D, A, E, F).
'known/1_1_$special_=\\=/2/2__1__0'([], A, B, C) :-
	'known/1_1_$special_=\\=/2/2__2'(A, B, C).
'known/1_1_$special_=\\=/2/2__1__0'([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'(G, H, A, I, C, D, J)
	;   'known/1_1_$special_=\\=/2/2__1__0'(I, C, D, J)
	).
'known/1_1_$special_=\\=/2/2__1__1'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=\\=/2/2__1__0'(A, B, C, D).
'known/1_1_$special_=\\=/2/2__1__1'([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'(J, A, K, G, B, L, D, F, M)
	;   'known/1_1_$special_=\\=/2/2__1__1'(K, G, B, L, D, F, M)
	).
'known/1_1_$special_=\\=/2/2__1__2'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=\\=/2/2__1__1'(A, B, C, D, E, F, G).
'known/1_1_$special_=\\=/2/2__1__2'([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(C=\=S),
	    (   H=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, H, inactive),
		'known/1_1_$special_=\\=/2/2__1__2'(T, G, U, C, F, V, E, S, H)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2/2__1__2'(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(fail).
'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(fail).
'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(fail).
'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(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(fail).
'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'(E, A, B, F).
'known/1_1_$special_=\\=/2/2__3__0'([], A, B, C) :-
	'known/1_1_$special_=\\=/2/2__4'(A, B, C).
'known/1_1_$special_=\\=/2/2__3__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2/2__3__0'(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'(E, A, B, F).
'known/1_1_$special_=\\=/2/2__4__0'([], A, B, C) :-
	'known/1_1_$special_=\\=/2/2__5'(A, B, C).
'known/1_1_$special_=\\=/2/2__4__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=\\=/2/2__4__0'(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(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B;C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	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'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	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, !,
	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_nonvar/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_nonvar/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_nonvar/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=var(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_var/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_var/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_var/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_var/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=atom(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_atom/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(5, F, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atom/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_atom/1/1', 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_atom/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=atomic(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_atomic/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(5, F, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atomic/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_atomic/1/1', 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_atomic/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=compound(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_compound/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(5, F, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_compound/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_compound/1/1', 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_compound/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=ground(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_ground/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(5, F, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_ground/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_ground/1/1', 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_ground/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=integer(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_integer/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(5, F, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_integer/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_integer/1/1', 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_integer/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=float(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_float/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(5, F, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_float/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_float/1/1', 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_float/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, N) :-
	nonvar(A),
	A=number(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_number/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(5, F, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_number/1/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_number/1/1', 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_number/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(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B=\=C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	arg(5, 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(5, O, _)
	    ;   true
	    )
	;   L=[_, _|N],
	    setarg(2, L, N),
	    (   N=[O|_]
	    ->  setarg(5, O, L)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_=\\=/2/2'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'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(fail).
'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(fail).
'known/1_1_$special_\\+/1/1__0'(A, T) :-
	nonvar(A),
	A=functor(B, C, D),
	(   'chr newvia'([B, C, D], E)
	->  get_attr(E, guard_entailment, F),
	    F=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, G, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', G)
	),
	'chr sbag_member'(H, G),
	H=suspension(_, active, _, _, I, J, K),
	I==B,
	J==C,
	K==D, !,
	H=suspension(_, _, _, _, L, M, N),
	setarg(2, H, removed),
	term_variables(term(L, M, N), S),
	arg(4, H, O),
	(   var(O)
	->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', P),
	    P=[_|Q],
	    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', 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_functor/3/3'(S, H),
	(   var(T)
	->  true
	;   T=suspension(_, U, _, _, V),
	    setarg(2, T, removed),
	    (   U==not_stored_yet
	    ->  W=[]
	    ;   term_variables(V, W),
		arg(4, T, X),
		(   var(X)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', Y),
		    Y=[_|Z],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(W, T)
	    )
	),
	known(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B\=C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	arg(5, 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(5, O, _)
	    ;   true
	    )
	;   L=[_, _|N],
	    setarg(2, L, N),
	    (   N=[O|_]
	    ->  setarg(5, O, L)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\=/2/2'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B=C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	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'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B\==C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	arg(5, 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(5, O, _)
	    ;   true
	    )
	;   L=[_, _|N],
	    setarg(2, L, N),
	    (   N=[O|_]
	    ->  setarg(5, O, L)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_\\==/2/2'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B==C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	arg(5, 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(5, O, _)
	    ;   true
	    )
	;   L=[_, _|N],
	    setarg(2, L, N),
	    (   N=[O|_]
	    ->  setarg(5, O, L)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_==/2/2'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B=<C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	arg(5, 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(5, O, _)
	    ;   true
	    )
	;   L=[_, _|N],
	    setarg(2, L, N),
	    (   N=[O|_]
	    ->  setarg(5, O, L)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_=</2/2'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'known/1_1_$special_\\+/1/1__0'(A, Q) :-
	nonvar(A),
	A= (B=:=C),
	(   'chr newvia_2'(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)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, _, _, H, I),
	H==B,
	I==C, !,
	G=suspension(_, _, _, _, _, J, K),
	setarg(2, G, removed),
	term_variables(term(J, K), P),
	arg(5, 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(5, O, _)
	    ;   true
	    )
	;   L=[_, _|N],
	    setarg(2, L, N),
	    (   N=[O|_]
	    ->  setarg(5, O, L)
	    ;   true
	    )
	),
	'detach_known/1_1_$special_=:=/2/2'(P, G),
	(   var(Q)
	->  true
	;   Q=suspension(_, R, _, _, S),
	    setarg(2, Q, removed),
	    (   R==not_stored_yet
	    ->  T=[]
	    ;   term_variables(S, T),
		arg(4, Q, U),
		(   var(U)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', V),
		    V=[_|W],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', 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_\\+/1/1'(T, Q)
	    )
	),
	known(fail).
'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(fail).
'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'(D, A, E).
'known/1_1_$special_\\+/1/1__0__0'([], A, B) :-
	'known/1_1_$special_\\+/1/1__1'(A, B).
'known/1_1_$special_\\+/1/1__0__0'([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'(W, E, M)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1/1__0__0'(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'(D, A, E).
'known/1_1_$special_\\+/1/1__1__0'([], A, B) :-
	'known/1_1_$special_\\+/1/1__2'(A, B).
'known/1_1_$special_\\+/1/1__1__0'([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'(X, F, N)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1/1__1__0'(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'(D, A, E).
'known/1_1_$special_\\+/1/1__2__0'([], A, B) :-
	'known/1_1_$special_\\+/1/1__3'(A, B).
'known/1_1_$special_\\+/1/1__2__0'([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'(U, C, K)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1/1__2__0'(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'(D, A, E).
'known/1_1_$special_\\+/1/1__3__0'([], A, B) :-
	'known/1_1_$special_\\+/1/1__4'(A, B).
'known/1_1_$special_\\+/1/1__3__0'([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'(V, D, L)
	    ;   true
	    )
	;   'known/1_1_$special_\\+/1/1__3__0'(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, N) :-
	ground(A),
	ground(B),
	var(C),
	(   'chr newvia'([], D)
	->  get_attr(D, guard_entailment, E),
	    E=v(_, F, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:variables/1', F)
	),
	'chr sbag_member'(G, F),
	G=suspension(_, active, _, Y), !,
	G=suspension(_, _, _, H),
	setarg(2, G, removed),
	term_variables(H, M),
	arg(3, G, I),
	(   var(I)
	->  nb_getval('$chr_store_global_list_guard_entailment:variables/1', J),
	    J=[_|K],
	    b_setval('$chr_store_global_list_guard_entailment:variables/1', K),
	    (   K=[L|_]
	    ->  setarg(3, L, _)
	    ;   true
	    )
	;   I=[_, _|K],
	    setarg(2, I, K),
	    (   K=[L|_]
	    ->  setarg(3, L, I)
	    ;   true
	    )
	),
	'detach_variables/1'(M, G),
	(   var(N)
	->  true
	;   N=suspension(_, O, _, _, P, Q, R),
	    setarg(2, N, removed),
	    (   O==not_stored_yet
	    ->  S=[]
	    ;   term_variables(term(P, Q, R), S),
		arg(4, N, T),
		(   var(T)
		->  nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', U),
		    U=[_|V],
		    b_setval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', V),
		    (   V=[W|_]
		    ->  setarg(4, W, _)
		    ;   true
		    )
		;   T=[_, _|V],
		    setarg(2, T, V),
		    (   V=[W|_]
		    ->  setarg(4, W, T)
		    ;   true
		    )
		),
		'detach_known/1_1_$special_functor/3/3'(S, N)
	    )
	),
	functor(C, B, A),
	C=..[_|X],
	append(X, Y, Z),
	variables(Z).
'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(fail).
'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(fail).
'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(fail).
'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(fail).
'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'(F, A, B, C, G).
'known/1_1_$special_functor/3/3__0__0'([], 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'([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'(C1, E, G, I, Q)
	    ;   true
	    )
	;   'known/1_1_$special_functor/3/3__0__0'(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'(F, A, B, C, G).
'known/1_1_$special_functor/3/3__1__0'([], 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'([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'(D1, F, H, J, R)
	    ;   true
	    )
	;   'known/1_1_$special_functor/3/3__1__0'(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'(D, A, E, F, G).
'known/1_1_$special_functor/3/3__2__0'([], 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'([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'(M, E, N, O, P)
	;   'known/1_1_$special_functor/3/3__2__0'(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(fail).
'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(fail).
'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).
'known/1_1_$special_\\=/2/2__0'(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_nunif(N, O, P),
	    known(P)
	;   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(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__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, 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(fail).
'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'(E, A, B, F).
'known/1_1_$special_\\=/2/2__1__0'([], A, B, C) :-
	'known/1_1_$special_\\=/2/2__2'(A, B, C).
'known/1_1_$special_\\=/2/2__1__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_\\=/2/2__1__0'(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'(E, A, B, F).
'known/1_1_$special_\\=/2/2__2__0'([], A, B, C) :-
	'known/1_1_$special_\\=/2/2__3'(A, B, C).
'known/1_1_$special_\\=/2/2__2__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_\\=/2/2__2__0'(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(fail)
	).
'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(fail).
'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'(E, A, B, F).
'known/1_1_$special_=/2/2__0__0'([], A, B, C) :-
	'known/1_1_$special_=/2/2__1'(A, B, C).
'known/1_1_$special_=/2/2__0__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=/2/2__0__0'(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'(E, A, B, F).
'known/1_1_$special_=/2/2__1__0'([], A, B, C) :-
	'known/1_1_$special_=/2/2__2'(A, B, C).
'known/1_1_$special_=/2/2__1__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=/2/2__1__0'(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(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__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'(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(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(fail).
'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(fail).
'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'(D, A, E, F).
'known/1_1_$special_\\==/2/2__2__0'([], A, B, C) :-
	'known/1_1_$special_\\==/2/2__3'(A, B, C).
'known/1_1_$special_\\==/2/2__2__0'([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(O\==P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_\\==/2/2__2__0'(Q, C, P, D)
	    ;   true
	    )
	;   'known/1_1_$special_\\==/2/2__2__0'(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(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(fail),
	(   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'(E, A, B, F).
'known/1_1_$special_\\==/2/2__5__0'([], A, B, C) :-
	'known/1_1_$special_\\==/2/2__6'(A, B, C).
'known/1_1_$special_\\==/2/2__5__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_\\==/2/2__5__0'(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'(E, A, B, F).
'known/1_1_$special_\\==/2/2__6__0'([], A, B, C) :-
	'known/1_1_$special_\\==/2/2__7'(A, B, C).
'known/1_1_$special_\\==/2/2__6__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_\\==/2/2__6__0'(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(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__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'(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(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(fail).
'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(fail).
'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'(D, E, A, F).
'known/1_1_$special_==/2/2__2__0'([], A, B, C) :-
	'known/1_1_$special_==/2/2__3'(A, B, C).
'known/1_1_$special_==/2/2__2__0'([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(O==P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_==/2/2__2__0'(Q, O, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_==/2/2__2__0'(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'(D, A, E, F).
'known/1_1_$special_==/2/2__3__0'([], A, B, C) :-
	'known/1_1_$special_==/2/2__4'(A, B, C).
'known/1_1_$special_==/2/2__3__0'([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(O==P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_==/2/2__3__0'(Q, C, P, D)
	    ;   true
	    )
	;   'known/1_1_$special_==/2/2__3__0'(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'(D, E, A, F).
'known/1_1_$special_==/2/2__4__0'([], A, B, C) :-
	'known/1_1_$special_==/2/2__5'(A, B, C).
'known/1_1_$special_==/2/2__4__0'([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(O\==P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_==/2/2__4__0'(Q, O, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_==/2/2__4__0'(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(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(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'(E, A, B, F).
'known/1_1_$special_==/2/2__7__0'([], A, B, C) :-
	'known/1_1_$special_==/2/2__8'(A, B, C).
'known/1_1_$special_==/2/2__7__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_==/2/2__7__0'(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'(E, A, B, F).
'known/1_1_$special_==/2/2__8__0'([], A, B, C) :-
	'known/1_1_$special_==/2/2__9'(A, B, C).
'known/1_1_$special_==/2/2__8__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_==/2/2__8__0'(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(A=:=B).
'known/1_1_$special_</2'(A, B) :-
	known(A=<B),
	known(A=\=B).
'known/1_1_$special_>=/2'(B, A) :-
	known(A=<B).
'known/1_1_$special_>/2'(B, A) :-
	known(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(fail).
'known/1_1_$special_=</2/2__0'(B, A, 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, _, _, _, G, H),
	G==B,
	number(H),
	H=<A, !,
	(   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'(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'(D, A, E, F).
'known/1_1_$special_=</2/2__0__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__1'(A, B, C).
'known/1_1_$special_=</2/2__0__0'([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'(M, C, E, N)
	;   'known/1_1_$special_=</2/2__0__0'(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'(D, E, A, F).
'known/1_1_$special_=</2/2__1__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__2'(A, B, C).
'known/1_1_$special_=</2/2__1__0'([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'(M, D, C, N)
	;   'known/1_1_$special_=</2/2__1__0'(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(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'(D, F, A, E).
'known/1_1_$special_=</2/2__2__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__3'(A, B, C).
'known/1_1_$special_=</2/2__2__0'([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(O=<P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=</2/2__2__0'(Q, O, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_=</2/2__2__0'(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'(D, A, E, F).
'known/1_1_$special_=</2/2__3__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__4'(A, B, C).
'known/1_1_$special_=</2/2__3__0'([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(O=<P),
	    (   D=suspension(_, active, _, G, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=</2/2__3__0'(Q, C, P, D)
	    ;   true
	    )
	;   'known/1_1_$special_=</2/2__3__0'(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'(D, E, A, F).
'known/1_1_$special_=</2/2__4__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__5'(A, B, C).
'known/1_1_$special_=</2/2__4__0'([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'(G, D, A, H, I, C, J)
	;   'known/1_1_$special_=</2/2__4__0'(H, I, C, J)
	).
'known/1_1_$special_=</2/2__4__1'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=</2/2__4__0'(A, B, C, D).
'known/1_1_$special_=</2/2__4__1'([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'(I, A, J, E, K, L, F, C, M)
	;   'known/1_1_$special_=</2/2__4__1'(J, E, K, L, F, C, M)
	).
'known/1_1_$special_=</2/2__4__2'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=</2/2__4__1'(A, B, C, D, E, F, G).
'known/1_1_$special_=</2/2__4__2'([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(D=\=S),
	    (   G=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, G, inactive),
		'known/1_1_$special_=</2/2__4__2'(T, H, U, S, B, V, D, F, G)
	    ;   true
	    )
	;   'known/1_1_$special_=</2/2__4__2'(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'(D, A, E, F).
'known/1_1_$special_=</2/2__5__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__6'(A, B, C).
'known/1_1_$special_=</2/2__5__0'([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'(G, H, A, I, C, D, J)
	;   'known/1_1_$special_=</2/2__5__0'(I, C, D, J)
	).
'known/1_1_$special_=</2/2__5__1'([], _, _, A, B, C, D) :-
	'known/1_1_$special_=</2/2__5__0'(A, B, C, D).
'known/1_1_$special_=</2/2__5__1'([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'(I, A, J, F, K, L, C, E, M)
	;   'known/1_1_$special_=</2/2__5__1'(J, F, K, L, C, E, M)
	).
'known/1_1_$special_=</2/2__5__2'([], _, A, B, C, D, E, F, G) :-
	'known/1_1_$special_=</2/2__5__1'(A, B, C, D, E, F, G).
'known/1_1_$special_=</2/2__5__2'([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(D=\=S),
	    (   H=suspension(_, active, _, K, _, _, _)
	    ->  setarg(2, H, inactive),
		'known/1_1_$special_=</2/2__5__2'(T, B, U, D, G, V, F, S, H)
	    ;   true
	    )
	;   'known/1_1_$special_=</2/2__5__2'(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(fail).
'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'(E, A, B, F).
'known/1_1_$special_=</2/2__6__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__7'(A, B, C).
'known/1_1_$special_=</2/2__6__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=</2/2__6__0'(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'(E, A, B, F).
'known/1_1_$special_=</2/2__7__0'([], A, B, C) :-
	'known/1_1_$special_=</2/2__8'(A, B, C).
'known/1_1_$special_=</2/2__7__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=</2/2__7__0'(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(fail).
'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(fail).
'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'(D, F, A, E).
'known/1_1_$special_=:=/2/2__0__0'([], A, B, C) :-
	'known/1_1_$special_=:=/2/2__1'(A, B, C).
'known/1_1_$special_=:=/2/2__0__0'([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(F=:=G),
	    (   D=suspension(_, active, _, I, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=:=/2/2__0__0'(Q, F, C, D)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2/2__0__0'(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'(D, A, E, F).
'known/1_1_$special_=:=/2/2__1__0'([], A, B, C) :-
	'known/1_1_$special_=:=/2/2__2'(A, B, C).
'known/1_1_$special_=:=/2/2__1__0'([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(F=:=G),
	    (   D=suspension(_, active, _, I, _, _, _)
	    ->  setarg(2, D, inactive),
		'known/1_1_$special_=:=/2/2__1__0'(Q, C, G, D)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2/2__1__0'(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(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(fail).
'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'(E, A, B, F).
'known/1_1_$special_=:=/2/2__3__0'([], A, B, C) :-
	'known/1_1_$special_=:=/2/2__4'(A, B, C).
'known/1_1_$special_=:=/2/2__3__0'([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'(Z, E, G, O)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2/2__3__0'(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'(E, A, B, F).
'known/1_1_$special_=:=/2/2__4__0'([], A, B, C) :-
	'known/1_1_$special_=:=/2/2__5'(A, B, C).
'known/1_1_$special_=:=/2/2__4__0'([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'(A1, F, H, P)
	    ;   true
	    )
	;   'known/1_1_$special_=:=/2/2__4__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_;/2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__0__0'(C).
'known/1_1_$special_fail/0/0__0__0'([]) :-
	'known/1_1_$special_fail/0/0__1'.
'known/1_1_$special_fail/0/0__0__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__0__0'(I)
	).
'known/1_1_$special_fail/0' :-
	'known/1_1_$special_fail/0/0__1'.
'known/1_1_$special_fail/0/0__1' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_nonvar/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__1__0'(C).
'known/1_1_$special_fail/0/0__1__0'([]) :-
	'known/1_1_$special_fail/0/0__2'.
'known/1_1_$special_fail/0/0__1__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__1__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_var/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__2__0'(C).
'known/1_1_$special_fail/0/0__2__0'([]) :-
	'known/1_1_$special_fail/0/0__3'.
'known/1_1_$special_fail/0/0__2__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__2__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atom/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__3__0'(C).
'known/1_1_$special_fail/0/0__3__0'([]) :-
	'known/1_1_$special_fail/0/0__4'.
'known/1_1_$special_fail/0/0__3__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__3__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_atomic/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__4__0'(C).
'known/1_1_$special_fail/0/0__4__0'([]) :-
	'known/1_1_$special_fail/0/0__5'.
'known/1_1_$special_fail/0/0__4__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__4__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_compound/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__5__0'(C).
'known/1_1_$special_fail/0/0__5__0'([]) :-
	'known/1_1_$special_fail/0/0__6'.
'known/1_1_$special_fail/0/0__5__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__5__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_ground/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__6__0'(C).
'known/1_1_$special_fail/0/0__6__0'([]) :-
	'known/1_1_$special_fail/0/0__7'.
'known/1_1_$special_fail/0/0__6__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__6__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_integer/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__7__0'(C).
'known/1_1_$special_fail/0/0__7__0'([]) :-
	'known/1_1_$special_fail/0/0__8'.
'known/1_1_$special_fail/0/0__7__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__7__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_float/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__8__0'(C).
'known/1_1_$special_fail/0/0__8__0'([]) :-
	'known/1_1_$special_fail/0/0__9'.
'known/1_1_$special_fail/0/0__8__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__8__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_number/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__9__0'(C).
'known/1_1_$special_fail/0/0__9__0'([]) :-
	'known/1_1_$special_fail/0/0__10'.
'known/1_1_$special_fail/0/0__9__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__9__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=\\=/2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__10__0'(C).
'known/1_1_$special_fail/0/0__10__0'([]) :-
	'known/1_1_$special_fail/0/0__11'.
'known/1_1_$special_fail/0/0__10__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__10__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\+/1/1', C)
	), !,
	'known/1_1_$special_fail/0/0__11__0'(C).
'known/1_1_$special_fail/0/0__11__0'([]) :-
	'known/1_1_$special_fail/0/0__12'.
'known/1_1_$special_fail/0/0__11__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__11__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_functor/3/3', C)
	), !,
	'known/1_1_$special_fail/0/0__12__0'(C).
'known/1_1_$special_fail/0/0__12__0'([]) :-
	'known/1_1_$special_fail/0/0__13'.
'known/1_1_$special_fail/0/0__12__0'([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'(J)
	;   'known/1_1_$special_fail/0/0__12__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\=/2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__13__0'(C).
'known/1_1_$special_fail/0/0__13__0'([]) :-
	'known/1_1_$special_fail/0/0__14'.
'known/1_1_$special_fail/0/0__13__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__13__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=/2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__14__0'(C).
'known/1_1_$special_fail/0/0__14__0'([]) :-
	'known/1_1_$special_fail/0/0__15'.
'known/1_1_$special_fail/0/0__14__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__14__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_\\==/2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__15__0'(C).
'known/1_1_$special_fail/0/0__15__0'([]) :-
	'known/1_1_$special_fail/0/0__16'.
'known/1_1_$special_fail/0/0__15__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__15__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_==/2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__16__0'(C).
'known/1_1_$special_fail/0/0__16__0'([]) :-
	'known/1_1_$special_fail/0/0__17'.
'known/1_1_$special_fail/0/0__16__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__16__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=</2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__17__0'(C).
'known/1_1_$special_fail/0/0__17__0'([]) :-
	'known/1_1_$special_fail/0/0__18'.
'known/1_1_$special_fail/0/0__17__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__17__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, C)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$special_=:=/2/2', C)
	), !,
	'known/1_1_$special_fail/0/0__18__0'(C).
'known/1_1_$special_fail/0/0__18__0'([]) :-
	'known/1_1_$special_fail/0/0__19'.
'known/1_1_$special_fail/0/0__18__0'([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'(I)
	;   'known/1_1_$special_fail/0/0__18__0'(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' :-
	(   'chr newvia'([], A)
	->  get_attr(A, guard_entailment, B),
	    B=v(_, _, C, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _)
	;   nb_getval('$chr_store_global_list_guard_entailment:known/1_1_$default/1', C)
	), !,
	'known/1_1_$special_fail/0/0__19__0'(C).
'known/1_1_$special_fail/0/0__19__0'([]) :-
	'known/1_1_$special_fail/0/0__20'.
'known/1_1_$special_fail/0/0__19__0'([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'(H)
	;   'known/1_1_$special_fail/0/0__19__0'(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.
