d02bc3de81
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2143 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
14500 lines
426 KiB
Prolog
14500 lines
426 KiB
Prolog
/* Generated by CHR bootstrap compiler
|
|
From: ../../../../work/LGPL/chr/guard_entailment.chr
|
|
Date: Mon Feb 11 14:12:44 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).
|
|
:-use_module(chr_runtime).
|
|
:-use_module(chr_hashtable_store).
|
|
:-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,D)),
|
|
term_variables(C,E),
|
|
variables(E),
|
|
sort(C,F),
|
|
entails_guard2(F),
|
|
!,
|
|
test(D),
|
|
!,
|
|
cleanup.
|
|
entails_guard2([]).
|
|
entails_guard2([A|B]) :-
|
|
known(A),
|
|
entails_guard2(B).
|
|
simplify_guards(A,B,C,D,E) :-
|
|
copy_term_nat((A,C),(F,G)),
|
|
term_variables(F,H),
|
|
variables(H),
|
|
sort(F,I),
|
|
entails_guard2(I),
|
|
!,
|
|
simplify(G,J),
|
|
simplified(C,J,D,B,E),
|
|
!,
|
|
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|C],[D|E],F,G) :-
|
|
builtins:binds_b(A,H),
|
|
term_variables(B,I),
|
|
intersect_eq(H,I,J),
|
|
!,
|
|
( J=[] ->
|
|
term_variables(F,K),
|
|
intersect_eq(H,K,L),
|
|
!,
|
|
( L=[] ->
|
|
D=true,
|
|
G=M
|
|
;
|
|
D=true,
|
|
G=(A,M)
|
|
)
|
|
;
|
|
D=A,
|
|
G=M
|
|
),
|
|
simplified(B,C,E,F,M).
|
|
simplify([],[]).
|
|
simplify([A|B],[C|D]) :-
|
|
( \+try(true,A) ->
|
|
C=true
|
|
;
|
|
builtins:negate_b(A,E),
|
|
( \+try(true,E) ->
|
|
C=fail
|
|
;
|
|
C=keep
|
|
)
|
|
),
|
|
known(A),
|
|
simplify(B,D).
|
|
try(A,B) :-
|
|
( known(A) ->
|
|
true
|
|
;
|
|
chr_error(internal,'Entailment Checker: try/2.
|
|
',[])
|
|
),
|
|
( test(B) ->
|
|
fail
|
|
;
|
|
true
|
|
).
|
|
add_args_unif([],[],true).
|
|
add_args_unif([A|B],[C|D],(A=C,E)) :-
|
|
add_args_unif(B,D,E).
|
|
add_args_nunif([],[],fail).
|
|
add_args_nunif([A|B],[C|D],(A\=C;E)) :-
|
|
add_args_nunif(B,D,E).
|
|
add_args_nmatch([],[],fail).
|
|
add_args_nmatch([A|B],[C|D],(A\==C;E)) :-
|
|
add_args_nmatch(B,D,E).
|
|
all_unique_vars(A,B) :-
|
|
all_unique_vars(A,B,[]).
|
|
all_unique_vars([],_,_).
|
|
all_unique_vars([A|B],C,D) :-
|
|
var(A),
|
|
\+memberchk_eq(A,C),
|
|
\+memberchk_eq(A,D),
|
|
all_unique_vars(B,[A|D]).
|
|
'attach_variables/1'([],_).
|
|
'attach_variables/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\1=:=1 ->
|
|
put_attr(A,guard_entailment,v(D1,[C|D],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/1,
|
|
put_attr(A,guard_entailment,v(E1,[C],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(1,[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_variables/1'(B,C).
|
|
'detach_variables/1'([],_).
|
|
'detach_variables/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\1=:=1 ->
|
|
'chr sbag_del_element'(D,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -2,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,[],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,F1,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_variables/1'(B,C).
|
|
'attach_known/1_1_$default/1'([],_).
|
|
'attach_known/1_1_$default/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\2=:=2 ->
|
|
put_attr(A,guard_entailment,v(D1,D,[C|E],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/2,
|
|
put_attr(A,guard_entailment,v(E1,D,[C],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(2,[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$default/1'(B,C).
|
|
'detach_known/1_1_$default/1'([],_).
|
|
'detach_known/1_1_$default/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\2=:=2 ->
|
|
'chr sbag_del_element'(E,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -3,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,[],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,F1,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$default/1'(B,C).
|
|
'attach_known/1_1_$special_;/2/2'([],_).
|
|
'attach_known/1_1_$special_;/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\4=:=4 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,[C|F],G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/4,
|
|
put_attr(A,guard_entailment,v(E1,D,E,[C],G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(4,[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_;/2/2'(B,C).
|
|
'detach_known/1_1_$special_;/2/2'([],_).
|
|
'detach_known/1_1_$special_;/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\4=:=4 ->
|
|
'chr sbag_del_element'(F,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -5,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,[],G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F1,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_;/2/2'(B,C).
|
|
'attach_known/1_1_$special_nonvar/1/1'([],_).
|
|
'attach_known/1_1_$special_nonvar/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\8=:=8 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,[C|G],H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/8,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,[C],H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(8,[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_nonvar/1/1'(B,C).
|
|
'detach_known/1_1_$special_nonvar/1/1'([],_).
|
|
'detach_known/1_1_$special_nonvar/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\8=:=8 ->
|
|
'chr sbag_del_element'(G,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -9,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,[],H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,F1,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_nonvar/1/1'(B,C).
|
|
'attach_known/1_1_$special_var/1/1'([],_).
|
|
'attach_known/1_1_$special_var/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\16=:=16 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,[C|H],I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/16,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,[C],I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(16,[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_var/1/1'(B,C).
|
|
'detach_known/1_1_$special_var/1/1'([],_).
|
|
'detach_known/1_1_$special_var/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\16=:=16 ->
|
|
'chr sbag_del_element'(H,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -17,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,[],I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,F1,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_var/1/1'(B,C).
|
|
'attach_known/1_1_$special_atom/1/1'([],_).
|
|
'attach_known/1_1_$special_atom/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\32=:=32 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,[C|I],J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/32,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,[C],J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(32,[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_atom/1/1'(B,C).
|
|
'detach_known/1_1_$special_atom/1/1'([],_).
|
|
'detach_known/1_1_$special_atom/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\32=:=32 ->
|
|
'chr sbag_del_element'(I,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -33,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,[],J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,F1,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_atom/1/1'(B,C).
|
|
'attach_known/1_1_$special_atomic/1/1'([],_).
|
|
'attach_known/1_1_$special_atomic/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\64=:=64 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,[C|J],K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/64,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,[C],K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(64,[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_atomic/1/1'(B,C).
|
|
'detach_known/1_1_$special_atomic/1/1'([],_).
|
|
'detach_known/1_1_$special_atomic/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\64=:=64 ->
|
|
'chr sbag_del_element'(J,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -65,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,[],K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,F1,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_atomic/1/1'(B,C).
|
|
'attach_known/1_1_$special_compound/1/1'([],_).
|
|
'attach_known/1_1_$special_compound/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\128=:=128 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,[C|K],L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/128,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,[C],L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(128,[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_compound/1/1'(B,C).
|
|
'detach_known/1_1_$special_compound/1/1'([],_).
|
|
'detach_known/1_1_$special_compound/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\128=:=128 ->
|
|
'chr sbag_del_element'(K,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -129,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,[],L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,F1,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_compound/1/1'(B,C).
|
|
'attach_known/1_1_$special_ground/1/1'([],_).
|
|
'attach_known/1_1_$special_ground/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\256=:=256 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,[C|L],M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/256,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,[C],M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(256,[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_ground/1/1'(B,C).
|
|
'detach_known/1_1_$special_ground/1/1'([],_).
|
|
'detach_known/1_1_$special_ground/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\256=:=256 ->
|
|
'chr sbag_del_element'(L,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -257,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,[],M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,F1,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_ground/1/1'(B,C).
|
|
'attach_known/1_1_$special_integer/1/1'([],_).
|
|
'attach_known/1_1_$special_integer/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\512=:=512 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,[C|M],N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/512,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,[C],N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(512,[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_integer/1/1'(B,C).
|
|
'detach_known/1_1_$special_integer/1/1'([],_).
|
|
'detach_known/1_1_$special_integer/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\512=:=512 ->
|
|
'chr sbag_del_element'(M,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -513,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,[],N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,F1,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_integer/1/1'(B,C).
|
|
'attach_known/1_1_$special_float/1/1'([],_).
|
|
'attach_known/1_1_$special_float/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\1024=:=1024 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,[C|N],O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/1024,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,[C],O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(1024,[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_float/1/1'(B,C).
|
|
'detach_known/1_1_$special_float/1/1'([],_).
|
|
'detach_known/1_1_$special_float/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\1024=:=1024 ->
|
|
'chr sbag_del_element'(N,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -1025,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,[],O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,F1,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_float/1/1'(B,C).
|
|
'attach_known/1_1_$special_number/1/1'([],_).
|
|
'attach_known/1_1_$special_number/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\2048=:=2048 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,[C|O],P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/2048,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,[C],P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(2048,[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_number/1/1'(B,C).
|
|
'detach_known/1_1_$special_number/1/1'([],_).
|
|
'detach_known/1_1_$special_number/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\2048=:=2048 ->
|
|
'chr sbag_del_element'(O,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -2049,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,[],P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,F1,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_number/1/1'(B,C).
|
|
'attach_known/1_1_$special_=\\=/2/2'([],_).
|
|
'attach_known/1_1_$special_=\\=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\4096=:=4096 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,[C|P],Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/4096,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,[C],Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(4096,[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_=\\=/2/2'(B,C).
|
|
'detach_known/1_1_$special_=\\=/2/2'([],_).
|
|
'detach_known/1_1_$special_=\\=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\4096=:=4096 ->
|
|
'chr sbag_del_element'(P,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -4097,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,[],Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,F1,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_=\\=/2/2'(B,C).
|
|
'attach_known/1_1_$special_\\+/1/1'([],_).
|
|
'attach_known/1_1_$special_\\+/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\8192=:=8192 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,[C|Q],R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/8192,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,[C],R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(8192,[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_\\+/1/1'(B,C).
|
|
'detach_known/1_1_$special_\\+/1/1'([],_).
|
|
'detach_known/1_1_$special_\\+/1/1'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\8192=:=8192 ->
|
|
'chr sbag_del_element'(Q,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -8193,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,[],R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,F1,R,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_\\+/1/1'(B,C).
|
|
'attach_known/1_1_$special_functor/3/3'([],_).
|
|
'attach_known/1_1_$special_functor/3/3'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\16384=:=16384 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,[C|R],S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/16384,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,[C],S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(16384,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_functor/3/3'(B,C).
|
|
'detach_known/1_1_$special_functor/3/3'([],_).
|
|
'detach_known/1_1_$special_functor/3/3'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\16384=:=16384 ->
|
|
'chr sbag_del_element'(R,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -16385,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,[],S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,F1,S,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_functor/3/3'(B,C).
|
|
'attach_known/1_1_$special_\\=/2/2'([],_).
|
|
'attach_known/1_1_$special_\\=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\32768=:=32768 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,[C|S],T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/32768,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,[C],T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(32768,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_\\=/2/2'(B,C).
|
|
'detach_known/1_1_$special_\\=/2/2'([],_).
|
|
'detach_known/1_1_$special_\\=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\32768=:=32768 ->
|
|
'chr sbag_del_element'(S,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -32769,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,[],T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,F1,T,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_\\=/2/2'(B,C).
|
|
'attach_known/1_1_$special_=/2/2'([],_).
|
|
'attach_known/1_1_$special_=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\65536=:=65536 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,[C|T],U,V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/65536,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,[C],U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(65536,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_=/2/2'(B,C).
|
|
'detach_known/1_1_$special_=/2/2'([],_).
|
|
'detach_known/1_1_$special_=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\65536=:=65536 ->
|
|
'chr sbag_del_element'(T,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -65537,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,[],U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,F1,U,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_=/2/2'(B,C).
|
|
'attach_known/1_1_$special_,/2/2'([],_).
|
|
'attach_known/1_1_$special_,/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\131072=:=131072 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,[C|U],V,W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/131072,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,[C],V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(131072,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_,/2/2'(B,C).
|
|
'detach_known/1_1_$special_,/2/2'([],_).
|
|
'detach_known/1_1_$special_,/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\131072=:=131072 ->
|
|
'chr sbag_del_element'(U,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -131073,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,[],V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,F1,V,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_,/2/2'(B,C).
|
|
'attach_known/1_1_$special_\\==/2/2'([],_).
|
|
'attach_known/1_1_$special_\\==/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\262144=:=262144 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,[C|V],W,X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/262144,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,[C],W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(262144,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_\\==/2/2'(B,C).
|
|
'detach_known/1_1_$special_\\==/2/2'([],_).
|
|
'detach_known/1_1_$special_\\==/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\262144=:=262144 ->
|
|
'chr sbag_del_element'(V,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -262145,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,[],W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,F1,W,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_\\==/2/2'(B,C).
|
|
'attach_known/1_1_$special_==/2/2'([],_).
|
|
'attach_known/1_1_$special_==/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\524288=:=524288 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,[C|W],X,Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/524288,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,[C],X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(524288,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_==/2/2'(B,C).
|
|
'detach_known/1_1_$special_==/2/2'([],_).
|
|
'detach_known/1_1_$special_==/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\524288=:=524288 ->
|
|
'chr sbag_del_element'(W,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -524289,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,[],X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,F1,X,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_==/2/2'(B,C).
|
|
'attach_known/1_1_$special_is/2/2'([],_).
|
|
'attach_known/1_1_$special_is/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\1048576=:=1048576 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,[C|X],Y,Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/1048576,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,[C],Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(1048576,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_is/2/2'(B,C).
|
|
'detach_known/1_1_$special_is/2/2'([],_).
|
|
'detach_known/1_1_$special_is/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\1048576=:=1048576 ->
|
|
'chr sbag_del_element'(X,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -1048577,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,[],Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,F1,Y,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_is/2/2'(B,C).
|
|
'attach_known/1_1_$special_</2/2'([],_).
|
|
'attach_known/1_1_$special_</2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\2097152=:=2097152 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,[C|Y],Z,A1,B1,C1))
|
|
;
|
|
E1 is D1\/2097152,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,[C],Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(2097152,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_</2/2'(B,C).
|
|
'detach_known/1_1_$special_</2/2'([],_).
|
|
'detach_known/1_1_$special_</2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\2097152=:=2097152 ->
|
|
'chr sbag_del_element'(Y,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -2097153,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,[],Z,A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,F1,Z,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_</2/2'(B,C).
|
|
'attach_known/1_1_$special_>=/2/2'([],_).
|
|
'attach_known/1_1_$special_>=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\4194304=:=4194304 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,[C|Z],A1,B1,C1))
|
|
;
|
|
E1 is D1\/4194304,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,[C],A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(4194304,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_>=/2/2'(B,C).
|
|
'detach_known/1_1_$special_>=/2/2'([],_).
|
|
'detach_known/1_1_$special_>=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\4194304=:=4194304 ->
|
|
'chr sbag_del_element'(Z,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -4194305,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,[],A1,B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,F1,A1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_>=/2/2'(B,C).
|
|
'attach_known/1_1_$special_>/2/2'([],_).
|
|
'attach_known/1_1_$special_>/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\8388608=:=8388608 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[C|A1],B1,C1))
|
|
;
|
|
E1 is D1\/8388608,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[C],B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(8388608,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[],[]))
|
|
),
|
|
'attach_known/1_1_$special_>/2/2'(B,C).
|
|
'detach_known/1_1_$special_>/2/2'([],_).
|
|
'detach_known/1_1_$special_>/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\8388608=:=8388608 ->
|
|
'chr sbag_del_element'(A1,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -8388609,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[],B1,C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,F1,B1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_>/2/2'(B,C).
|
|
'attach_known/1_1_$special_=</2/2'([],_).
|
|
'attach_known/1_1_$special_=</2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\16777216=:=16777216 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,[C|B1],C1))
|
|
;
|
|
E1 is D1\/16777216,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,[C],C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(16777216,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C],[]))
|
|
),
|
|
'attach_known/1_1_$special_=</2/2'(B,C).
|
|
'detach_known/1_1_$special_=</2/2'([],_).
|
|
'detach_known/1_1_$special_=</2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\16777216=:=16777216 ->
|
|
'chr sbag_del_element'(B1,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -16777217,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,[],C1))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,F1,C1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_=</2/2'(B,C).
|
|
'attach_known/1_1_$special_=:=/2/2'([],_).
|
|
'attach_known/1_1_$special_=:=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,F1) ->
|
|
F1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\33554432=:=33554432 ->
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,[C|C1]))
|
|
;
|
|
E1 is D1\/33554432,
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,[C]))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(33554432,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[C]))
|
|
),
|
|
'attach_known/1_1_$special_=:=/2/2'(B,C).
|
|
'detach_known/1_1_$special_=:=/2/2'([],_).
|
|
'detach_known/1_1_$special_=:=/2/2'([A|B],C) :-
|
|
( get_attr(A,guard_entailment,G1) ->
|
|
G1=v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,C1),
|
|
( D1/\33554432=:=33554432 ->
|
|
'chr sbag_del_element'(C1,C,F1),
|
|
( F1==[] ->
|
|
E1 is D1/\ -33554433,
|
|
( E1==0 ->
|
|
del_attr(A,guard_entailment)
|
|
;
|
|
put_attr(A,guard_entailment,v(E1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,[]))
|
|
)
|
|
;
|
|
put_attr(A,guard_entailment,v(D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1,B1,F1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
),
|
|
'detach_known/1_1_$special_=:=/2/2'(B,C).
|
|
'$indexed_variables'(B,A) :-
|
|
B=variables(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$default'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_;/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_nonvar/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_var/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_atom/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_atomic/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_compound/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_ground/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_integer/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_float/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_number/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_=\\=/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_\\+/1'(_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_functor/3'(_,_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_\\=/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_=/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_,/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_\\==/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_==/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_is/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_</2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_>=/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_>/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_=</2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_=:=/2'(_,_),
|
|
term_variables(B,A).
|
|
'$indexed_variables'(B,A) :-
|
|
B='known/1_1_$special_fail/0',
|
|
A=[].
|
|
attach_increment([],_).
|
|
attach_increment([C2|D2],v(A1,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)) :-
|
|
'chr not_locked'(C2),
|
|
( get_attr(C2,guard_entailment,F4) ->
|
|
F4=v(B2,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2),
|
|
sort(B1,E2),
|
|
'chr merge_attributes'(A,E2,F2),
|
|
sort(C1,G2),
|
|
'chr merge_attributes'(B,G2,H2),
|
|
sort(D1,I2),
|
|
'chr merge_attributes'(C,I2,J2),
|
|
sort(E1,K2),
|
|
'chr merge_attributes'(D,K2,L2),
|
|
sort(F1,M2),
|
|
'chr merge_attributes'(E,M2,N2),
|
|
sort(G1,O2),
|
|
'chr merge_attributes'(F,O2,P2),
|
|
sort(H1,Q2),
|
|
'chr merge_attributes'(G,Q2,R2),
|
|
sort(I1,S2),
|
|
'chr merge_attributes'(H,S2,T2),
|
|
sort(J1,U2),
|
|
'chr merge_attributes'(I,U2,V2),
|
|
sort(K1,W2),
|
|
'chr merge_attributes'(J,W2,X2),
|
|
sort(L1,Y2),
|
|
'chr merge_attributes'(K,Y2,Z2),
|
|
sort(M1,A3),
|
|
'chr merge_attributes'(L,A3,B3),
|
|
sort(N1,C3),
|
|
'chr merge_attributes'(M,C3,D3),
|
|
sort(O1,E3),
|
|
'chr merge_attributes'(N,E3,F3),
|
|
sort(P1,G3),
|
|
'chr merge_attributes'(O,G3,H3),
|
|
sort(Q1,I3),
|
|
'chr merge_attributes'(P,I3,J3),
|
|
sort(R1,K3),
|
|
'chr merge_attributes'(Q,K3,L3),
|
|
sort(S1,M3),
|
|
'chr merge_attributes'(R,M3,N3),
|
|
sort(T1,O3),
|
|
'chr merge_attributes'(S,O3,P3),
|
|
sort(U1,Q3),
|
|
'chr merge_attributes'(T,Q3,R3),
|
|
sort(V1,S3),
|
|
'chr merge_attributes'(U,S3,T3),
|
|
sort(W1,U3),
|
|
'chr merge_attributes'(V,U3,V3),
|
|
sort(X1,W3),
|
|
'chr merge_attributes'(W,W3,X3),
|
|
sort(Y1,Y3),
|
|
'chr merge_attributes'(X,Y3,Z3),
|
|
sort(Z1,A4),
|
|
'chr merge_attributes'(Y,A4,B4),
|
|
sort(A2,C4),
|
|
'chr merge_attributes'(Z,C4,D4),
|
|
E4 is A1\/B2,
|
|
put_attr(C2,guard_entailment,v(E4,F2,H2,J2,L2,N2,P2,R2,T2,V2,X2,Z2,B3,D3,F3,H3,J3,L3,N3,P3,R3,T3,V3,X3,Z3,B4,D4))
|
|
;
|
|
put_attr(C2,guard_entailment,v(A1,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z))
|
|
),
|
|
attach_increment(D2,v(A1,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z)).
|
|
attr_unify_hook(v(A1,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z),D5) :-
|
|
sort(A,C2),
|
|
sort(B,D2),
|
|
sort(C,E2),
|
|
sort(D,F2),
|
|
sort(E,G2),
|
|
sort(F,H2),
|
|
sort(G,I2),
|
|
sort(H,J2),
|
|
sort(I,K2),
|
|
sort(J,L2),
|
|
sort(K,M2),
|
|
sort(L,N2),
|
|
sort(M,O2),
|
|
sort(N,P2),
|
|
sort(O,Q2),
|
|
sort(P,R2),
|
|
sort(Q,S2),
|
|
sort(R,T2),
|
|
sort(S,U2),
|
|
sort(T,V2),
|
|
sort(U,W2),
|
|
sort(V,X2),
|
|
sort(W,Y2),
|
|
sort(X,Z2),
|
|
sort(Y,A3),
|
|
sort(Z,B3),
|
|
( var(D5) ->
|
|
( get_attr(D5,guard_entailment,E5) ->
|
|
E5=v(B2,B1,C1,D1,E1,F1,G1,H1,I1,J1,K1,L1,M1,N1,O1,P1,Q1,R1,S1,T1,U1,V1,W1,X1,Y1,Z1,A2),
|
|
sort(B1,C3),
|
|
'chr merge_attributes'(C2,C3,D3),
|
|
sort(C1,E3),
|
|
'chr merge_attributes'(D2,E3,F3),
|
|
sort(D1,G3),
|
|
'chr merge_attributes'(E2,G3,H3),
|
|
sort(E1,I3),
|
|
'chr merge_attributes'(F2,I3,J3),
|
|
sort(F1,K3),
|
|
'chr merge_attributes'(G2,K3,L3),
|
|
sort(G1,M3),
|
|
'chr merge_attributes'(H2,M3,N3),
|
|
sort(H1,O3),
|
|
'chr merge_attributes'(I2,O3,P3),
|
|
sort(I1,Q3),
|
|
'chr merge_attributes'(J2,Q3,R3),
|
|
sort(J1,S3),
|
|
'chr merge_attributes'(K2,S3,T3),
|
|
sort(K1,U3),
|
|
'chr merge_attributes'(L2,U3,V3),
|
|
sort(L1,W3),
|
|
'chr merge_attributes'(M2,W3,X3),
|
|
sort(M1,Y3),
|
|
'chr merge_attributes'(N2,Y3,Z3),
|
|
sort(N1,A4),
|
|
'chr merge_attributes'(O2,A4,B4),
|
|
sort(O1,C4),
|
|
'chr merge_attributes'(P2,C4,D4),
|
|
sort(P1,E4),
|
|
'chr merge_attributes'(Q2,E4,F4),
|
|
sort(Q1,G4),
|
|
'chr merge_attributes'(R2,G4,H4),
|
|
sort(R1,I4),
|
|
'chr merge_attributes'(S2,I4,J4),
|
|
sort(S1,K4),
|
|
'chr merge_attributes'(T2,K4,L4),
|
|
sort(T1,M4),
|
|
'chr merge_attributes'(U2,M4,N4),
|
|
sort(U1,O4),
|
|
'chr merge_attributes'(V2,O4,P4),
|
|
sort(V1,Q4),
|
|
'chr merge_attributes'(W2,Q4,R4),
|
|
sort(W1,S4),
|
|
'chr merge_attributes'(X2,S4,T4),
|
|
sort(X1,U4),
|
|
'chr merge_attributes'(Y2,U4,V4),
|
|
sort(Y1,W4),
|
|
'chr merge_attributes'(Z2,W4,X4),
|
|
sort(Z1,Y4),
|
|
'chr merge_attributes'(A3,Y4,Z4),
|
|
sort(A2,A5),
|
|
'chr merge_attributes'(B3,A5,B5),
|
|
C5 is A1\/B2,
|
|
put_attr(D5,guard_entailment,v(C5,D3,F3,H3,J3,L3,N3,P3,R3,T3,V3,X3,Z3,B4,D4,F4,H4,J4,L4,N4,P4,R4,T4,V4,X4,Z4,B5)),
|
|
'chr run_suspensions_loop'([D3,F3,H3,J3,L3,N3,P3,R3,T3,V3,X3,Z3,B4,D4,F4,H4,J4,L4,N4,P4,R4,T4,V4,X4,Z4,B5])
|
|
;
|
|
put_attr(D5,guard_entailment,v(A1,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2,R2,S2,T2,U2,V2,W2,X2,Y2,Z2,A3,B3)),
|
|
'chr run_suspensions_loop'([C2,D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2,R2,S2,T2,U2,V2,W2,X2,Y2,Z2,A3,B3])
|
|
)
|
|
;
|
|
( compound(D5) ->
|
|
term_variables(D5,F5),
|
|
attach_increment(F5,v(A1,C2,D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2,R2,S2,T2,U2,V2,W2,X2,Y2,Z2,A3,B3))
|
|
;
|
|
true
|
|
),
|
|
'chr run_suspensions_loop'([C2,D2,E2,F2,G2,H2,I2,J2,K2,L2,M2,N2,O2,P2,Q2,R2,S2,T2,U2,V2,W2,X2,Y2,Z2,A3,B3])
|
|
).
|
|
remove_constraint_internal(A,B,C) :-
|
|
arg(2,A,D),
|
|
'chr get_mutable'(E,D),
|
|
'chr update_mutable'(removed,D),
|
|
( compound(E) ->
|
|
B=[],
|
|
C=no
|
|
;
|
|
( E==removed ->
|
|
B=[],
|
|
C=no
|
|
)
|
|
;
|
|
C=yes,
|
|
chr_indexed_variables(A,B)
|
|
).
|
|
activate_constraint(A,B,C,D) :-
|
|
arg(2,C,E),
|
|
'chr get_mutable'(F,E),
|
|
'chr update_mutable'(active,E),
|
|
( nonvar(D) ->
|
|
true
|
|
;
|
|
arg(4,C,G),
|
|
'chr get_mutable'(H,G),
|
|
D is H+1,
|
|
'chr update_mutable'(D,G)
|
|
),
|
|
( compound(F) ->
|
|
term_variables(F,B),
|
|
'chr none_locked'(B),
|
|
A=yes
|
|
;
|
|
( F==removed ->
|
|
chr_indexed_variables(C,B),
|
|
A=yes
|
|
)
|
|
;
|
|
B=[],
|
|
A=no
|
|
).
|
|
allocate_constraint(A,B,C,D) :-
|
|
B=..[suspension,E,F,A,G,H,C|D],
|
|
'chr create_mutable'(0,G),
|
|
'chr empty_history'(I),
|
|
'chr create_mutable'(I,H),
|
|
chr_indexed_variables(B,J),
|
|
'chr create_mutable'(passive(J),F),
|
|
'chr gen_id'(E).
|
|
chr_indexed_variables(A,C) :-
|
|
A=..[_,_,_,_,_,_,B|_],
|
|
'$indexed_variables'(B,C).
|
|
insert_constraint_internal(yes,A,B,C,D,E) :-
|
|
B=..[suspension,F,G,C,H,I,D|E],
|
|
chr_indexed_variables(B,A),
|
|
'chr none_locked'(A),
|
|
'chr create_mutable'(active,G),
|
|
'chr create_mutable'(0,H),
|
|
'chr empty_history'(J),
|
|
'chr create_mutable'(J,I),
|
|
'chr gen_id'(F).
|
|
'$insert_in_store_variables/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\1=:=1 ->
|
|
put_attr(D1,guard_entailment,v(B1,[A|B],C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/1,
|
|
put_attr(D1,guard_entailment,v(C1,[A],C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(1,[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_variables/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\1=:=1 ->
|
|
'chr sbag_del_element'(B,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -2,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,[],C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,D1,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$default/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\2=:=2 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,[A|C],D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/2,
|
|
put_attr(D1,guard_entailment,v(C1,B,[A],D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(2,[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$default/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\2=:=2 ->
|
|
'chr sbag_del_element'(C,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -3,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,[],D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,D1,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_;/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\4=:=4 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,[A|D],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/4,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,[A],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(4,[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\4=:=4 ->
|
|
'chr sbag_del_element'(D,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -5,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,[],E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D1,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_nonvar/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\8=:=8 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,[A|E],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/8,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,[A],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(8,[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\8=:=8 ->
|
|
'chr sbag_del_element'(E,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -9,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,[],F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,D1,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_var/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\16=:=16 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,[A|F],G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/16,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,[A],G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(16,[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\16=:=16 ->
|
|
'chr sbag_del_element'(F,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -17,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,[],G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,D1,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_atom/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\32=:=32 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,[A|G],H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/32,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,[A],H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(32,[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\32=:=32 ->
|
|
'chr sbag_del_element'(G,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -33,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,[],H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,D1,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_atomic/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\64=:=64 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,[A|H],I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/64,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,[A],I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(64,[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\64=:=64 ->
|
|
'chr sbag_del_element'(H,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -65,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,[],I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,D1,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_compound/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\128=:=128 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,[A|I],J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/128,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,[A],J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(128,[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\128=:=128 ->
|
|
'chr sbag_del_element'(I,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -129,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,[],J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,D1,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_ground/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\256=:=256 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,[A|J],K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/256,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,[A],K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(256,[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\256=:=256 ->
|
|
'chr sbag_del_element'(J,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -257,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,[],K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,D1,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_integer/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\512=:=512 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,[A|K],L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/512,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,[A],L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(512,[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\512=:=512 ->
|
|
'chr sbag_del_element'(K,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -513,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,[],L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,D1,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_float/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\1024=:=1024 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,[A|L],M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/1024,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,[A],M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(1024,[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\1024=:=1024 ->
|
|
'chr sbag_del_element'(L,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -1025,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,[],M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,D1,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_number/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\2048=:=2048 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,[A|M],N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/2048,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,[A],N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(2048,[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\2048=:=2048 ->
|
|
'chr sbag_del_element'(M,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -2049,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,[],N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,D1,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_=\\=/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\4096=:=4096 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,[A|N],O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/4096,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,[A],O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(4096,[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\4096=:=4096 ->
|
|
'chr sbag_del_element'(N,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -4097,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,[],O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,D1,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_\\+/1/1'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\8192=:=8192 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,[A|O],P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/8192,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,[A],P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(8192,[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\8192=:=8192 ->
|
|
'chr sbag_del_element'(O,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -8193,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,[],P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,D1,P,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_functor/3/3'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\16384=:=16384 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,[A|P],Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/16384,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,[A],Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(16384,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\16384=:=16384 ->
|
|
'chr sbag_del_element'(P,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -16385,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,[],Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,D1,Q,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_\\=/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\32768=:=32768 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,[A|Q],R,S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/32768,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,[A],R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(32768,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\32768=:=32768 ->
|
|
'chr sbag_del_element'(Q,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -32769,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,[],R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,D1,R,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_=/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\65536=:=65536 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,[A|R],S,T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/65536,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,[A],S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(65536,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\65536=:=65536 ->
|
|
'chr sbag_del_element'(R,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -65537,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,[],S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,D1,S,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_,/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\131072=:=131072 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,[A|S],T,U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/131072,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,[A],T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(131072,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\131072=:=131072 ->
|
|
'chr sbag_del_element'(S,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -131073,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,[],T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,D1,T,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\262144=:=262144 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,[A|T],U,V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/262144,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,[A],U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(262144,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\262144=:=262144 ->
|
|
'chr sbag_del_element'(T,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -262145,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,[],U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,D1,U,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\524288=:=524288 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,[A|U],V,W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/524288,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,[A],V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(524288,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\524288=:=524288 ->
|
|
'chr sbag_del_element'(U,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -524289,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,[],V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,D1,V,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_is/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\1048576=:=1048576 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,[A|V],W,X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/1048576,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,[A],W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(1048576,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_is/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\1048576=:=1048576 ->
|
|
'chr sbag_del_element'(V,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -1048577,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,[],W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,D1,W,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_</2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\2097152=:=2097152 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,[A|W],X,Y,Z,A1))
|
|
;
|
|
C1 is B1\/2097152,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,[A],X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(2097152,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_</2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\2097152=:=2097152 ->
|
|
'chr sbag_del_element'(W,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -2097153,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,[],X,Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,D1,X,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_>=/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\4194304=:=4194304 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,[A|X],Y,Z,A1))
|
|
;
|
|
C1 is B1\/4194304,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,[A],Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(4194304,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_>=/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\4194304=:=4194304 ->
|
|
'chr sbag_del_element'(X,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -4194305,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,[],Y,Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,D1,Y,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_>/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\8388608=:=8388608 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,[A|Y],Z,A1))
|
|
;
|
|
C1 is B1\/8388608,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,[A],Z,A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(8388608,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_>/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\8388608=:=8388608 ->
|
|
'chr sbag_del_element'(Y,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -8388609,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,[],Z,A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,D1,Z,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\16777216=:=16777216 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,[A|Z],A1))
|
|
;
|
|
C1 is B1\/16777216,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,[A],A1))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(16777216,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A],[]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\16777216=:=16777216 ->
|
|
'chr sbag_del_element'(Z,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -16777217,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,[],A1))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,D1,A1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_=:=/2/2'(A) :-
|
|
'chr default_store'(D1),
|
|
( get_attr(D1,guard_entailment,E1) ->
|
|
E1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\33554432=:=33554432 ->
|
|
put_attr(D1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[A|A1]))
|
|
;
|
|
C1 is B1\/33554432,
|
|
put_attr(D1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[A]))
|
|
)
|
|
;
|
|
put_attr(D1,guard_entailment,v(33554432,[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[A]))
|
|
).
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(A) :-
|
|
'chr default_store'(E1),
|
|
( get_attr(E1,guard_entailment,F1) ->
|
|
F1=v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,A1),
|
|
( B1/\33554432=:=33554432 ->
|
|
'chr sbag_del_element'(A1,A,D1),
|
|
( D1==[] ->
|
|
C1 is B1/\ -33554433,
|
|
( C1==0 ->
|
|
del_attr(E1,guard_entailment)
|
|
;
|
|
put_attr(E1,guard_entailment,v(C1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[]))
|
|
)
|
|
;
|
|
put_attr(E1,guard_entailment,v(B1,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,D1))
|
|
)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
true
|
|
).
|
|
'$insert_in_store_known/1_1_$special_fail/0/0'(A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
b_setval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',[A|B]).
|
|
'$delete_from_store_known/1_1_$special_fail/0/0'(A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_del_element'(B,A,C),
|
|
b_setval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C).
|
|
'$enumerate_suspensions'(A) :-
|
|
(
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
arg(2,C,D),
|
|
'chr sbag_member'(A,D)
|
|
;
|
|
'chr default_store'(E),
|
|
get_attr(E,guard_entailment,F),
|
|
arg(3,F,G),
|
|
'chr sbag_member'(A,G)
|
|
;
|
|
'chr default_store'(H),
|
|
get_attr(H,guard_entailment,I),
|
|
arg(4,I,J),
|
|
'chr sbag_member'(A,J)
|
|
;
|
|
'chr default_store'(K),
|
|
get_attr(K,guard_entailment,L),
|
|
arg(5,L,M),
|
|
'chr sbag_member'(A,M)
|
|
;
|
|
'chr default_store'(N),
|
|
get_attr(N,guard_entailment,O),
|
|
arg(6,O,P),
|
|
'chr sbag_member'(A,P)
|
|
;
|
|
'chr default_store'(Q),
|
|
get_attr(Q,guard_entailment,R),
|
|
arg(7,R,S),
|
|
'chr sbag_member'(A,S)
|
|
;
|
|
'chr default_store'(T),
|
|
get_attr(T,guard_entailment,U),
|
|
arg(8,U,V),
|
|
'chr sbag_member'(A,V)
|
|
;
|
|
'chr default_store'(W),
|
|
get_attr(W,guard_entailment,X),
|
|
arg(9,X,Y),
|
|
'chr sbag_member'(A,Y)
|
|
;
|
|
'chr default_store'(Z),
|
|
get_attr(Z,guard_entailment,A1),
|
|
arg(10,A1,B1),
|
|
'chr sbag_member'(A,B1)
|
|
;
|
|
'chr default_store'(C1),
|
|
get_attr(C1,guard_entailment,D1),
|
|
arg(11,D1,E1),
|
|
'chr sbag_member'(A,E1)
|
|
;
|
|
'chr default_store'(F1),
|
|
get_attr(F1,guard_entailment,G1),
|
|
arg(12,G1,H1),
|
|
'chr sbag_member'(A,H1)
|
|
;
|
|
'chr default_store'(I1),
|
|
get_attr(I1,guard_entailment,J1),
|
|
arg(13,J1,K1),
|
|
'chr sbag_member'(A,K1)
|
|
;
|
|
'chr default_store'(L1),
|
|
get_attr(L1,guard_entailment,M1),
|
|
arg(14,M1,N1),
|
|
'chr sbag_member'(A,N1)
|
|
;
|
|
'chr default_store'(O1),
|
|
get_attr(O1,guard_entailment,P1),
|
|
arg(15,P1,Q1),
|
|
'chr sbag_member'(A,Q1)
|
|
;
|
|
'chr default_store'(R1),
|
|
get_attr(R1,guard_entailment,S1),
|
|
arg(16,S1,T1),
|
|
'chr sbag_member'(A,T1)
|
|
;
|
|
'chr default_store'(U1),
|
|
get_attr(U1,guard_entailment,V1),
|
|
arg(17,V1,W1),
|
|
'chr sbag_member'(A,W1)
|
|
;
|
|
'chr default_store'(X1),
|
|
get_attr(X1,guard_entailment,Y1),
|
|
arg(18,Y1,Z1),
|
|
'chr sbag_member'(A,Z1)
|
|
;
|
|
'chr default_store'(A2),
|
|
get_attr(A2,guard_entailment,B2),
|
|
arg(19,B2,C2),
|
|
'chr sbag_member'(A,C2)
|
|
;
|
|
'chr default_store'(D2),
|
|
get_attr(D2,guard_entailment,E2),
|
|
arg(20,E2,F2),
|
|
'chr sbag_member'(A,F2)
|
|
;
|
|
'chr default_store'(G2),
|
|
get_attr(G2,guard_entailment,H2),
|
|
arg(21,H2,I2),
|
|
'chr sbag_member'(A,I2)
|
|
;
|
|
'chr default_store'(J2),
|
|
get_attr(J2,guard_entailment,K2),
|
|
arg(22,K2,L2),
|
|
'chr sbag_member'(A,L2)
|
|
;
|
|
'chr default_store'(M2),
|
|
get_attr(M2,guard_entailment,N2),
|
|
arg(23,N2,O2),
|
|
'chr sbag_member'(A,O2)
|
|
;
|
|
'chr default_store'(P2),
|
|
get_attr(P2,guard_entailment,Q2),
|
|
arg(24,Q2,R2),
|
|
'chr sbag_member'(A,R2)
|
|
;
|
|
'chr default_store'(S2),
|
|
get_attr(S2,guard_entailment,T2),
|
|
arg(25,T2,U2),
|
|
'chr sbag_member'(A,U2)
|
|
;
|
|
'chr default_store'(V2),
|
|
get_attr(V2,guard_entailment,W2),
|
|
arg(26,W2,X2),
|
|
'chr sbag_member'(A,X2)
|
|
;
|
|
'chr default_store'(Y2),
|
|
get_attr(Y2,guard_entailment,Z2),
|
|
arg(27,Z2,A3),
|
|
'chr sbag_member'(A,A3)
|
|
;
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B3),
|
|
'chr sbag_member'(A,B3)
|
|
).
|
|
:-nb_setval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',[]).
|
|
known(A) :-
|
|
'known/1__0'(A,_).
|
|
'known/1__0'(A,_) :-
|
|
nonvar(A),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
A=(B;C),
|
|
!,
|
|
'known/1_1_$special_;/2'(B,C)
|
|
;
|
|
A=nonvar(D),
|
|
!,
|
|
'known/1_1_$special_nonvar/1'(D)
|
|
)
|
|
;
|
|
A=var(E),
|
|
!,
|
|
'known/1_1_$special_var/1'(E)
|
|
)
|
|
;
|
|
A=atom(F),
|
|
!,
|
|
'known/1_1_$special_atom/1'(F)
|
|
)
|
|
;
|
|
A=atomic(G),
|
|
!,
|
|
'known/1_1_$special_atomic/1'(G)
|
|
)
|
|
;
|
|
A=compound(H),
|
|
!,
|
|
'known/1_1_$special_compound/1'(H)
|
|
)
|
|
;
|
|
A=ground(I),
|
|
!,
|
|
'known/1_1_$special_ground/1'(I)
|
|
)
|
|
;
|
|
A=integer(J),
|
|
!,
|
|
'known/1_1_$special_integer/1'(J)
|
|
)
|
|
;
|
|
A=float(K),
|
|
!,
|
|
'known/1_1_$special_float/1'(K)
|
|
)
|
|
;
|
|
A=number(L),
|
|
!,
|
|
'known/1_1_$special_number/1'(L)
|
|
)
|
|
;
|
|
A=(M=\=N),
|
|
!,
|
|
'known/1_1_$special_=\\=/2'(M,N)
|
|
)
|
|
;
|
|
A=(\+O),
|
|
!,
|
|
'known/1_1_$special_\\+/1'(O)
|
|
)
|
|
;
|
|
A=functor(P,Q,R),
|
|
!,
|
|
'known/1_1_$special_functor/3'(P,Q,R)
|
|
)
|
|
;
|
|
A=(S\=T),
|
|
!,
|
|
'known/1_1_$special_\\=/2'(S,T)
|
|
)
|
|
;
|
|
A=(U=V),
|
|
!,
|
|
'known/1_1_$special_=/2'(U,V)
|
|
)
|
|
;
|
|
A=(W,X),
|
|
!,
|
|
'known/1_1_$special_,/2'(W,X)
|
|
)
|
|
;
|
|
A=(Y\==Z),
|
|
!,
|
|
'known/1_1_$special_\\==/2'(Y,Z)
|
|
)
|
|
;
|
|
A=(A1==B1),
|
|
!,
|
|
'known/1_1_$special_==/2'(A1,B1)
|
|
)
|
|
;
|
|
A=(C1 is D1),
|
|
!,
|
|
'known/1_1_$special_is/2'(C1,D1)
|
|
)
|
|
;
|
|
A=(E1<F1),
|
|
!,
|
|
'known/1_1_$special_</2'(E1,F1)
|
|
)
|
|
;
|
|
A=(G1>=H1),
|
|
!,
|
|
'known/1_1_$special_>=/2'(G1,H1)
|
|
)
|
|
;
|
|
A=(I1>J1),
|
|
!,
|
|
'known/1_1_$special_>/2'(I1,J1)
|
|
)
|
|
;
|
|
A=(K1=<L1),
|
|
!,
|
|
'known/1_1_$special_=</2'(K1,L1)
|
|
)
|
|
;
|
|
A=(M1=:=N1),
|
|
!,
|
|
'known/1_1_$special_=:=/2'(M1,N1)
|
|
).
|
|
'known/1__0'(A,_) :-
|
|
A==fail,
|
|
!,
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1__0'(A,_) :-
|
|
!,
|
|
'known/1_1_$default'(A).
|
|
test(A) :-
|
|
'test/1__0'(A,_).
|
|
'test/1__0'(A,_) :-
|
|
nonvar(A),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
A=(B,C),
|
|
!,
|
|
'test/1_1_$special_,/2'(B,C)
|
|
;
|
|
A=(\+D),
|
|
!,
|
|
'test/1_1_$special_\\+/1'(D)
|
|
)
|
|
;
|
|
A=integer(E),
|
|
!,
|
|
'test/1_1_$special_integer/1'(E)
|
|
)
|
|
;
|
|
A=float(F),
|
|
!,
|
|
'test/1_1_$special_float/1'(F)
|
|
)
|
|
;
|
|
A=number(G),
|
|
!,
|
|
'test/1_1_$special_number/1'(G)
|
|
)
|
|
;
|
|
A=ground(H),
|
|
!,
|
|
'test/1_1_$special_ground/1'(H)
|
|
)
|
|
;
|
|
A=(I=:=J),
|
|
!,
|
|
'test/1_1_$special_=:=/2'(I,J)
|
|
)
|
|
;
|
|
A=(K==L),
|
|
!,
|
|
'test/1_1_$special_==/2'(K,L)
|
|
).
|
|
'test/1__0'(A,_) :-
|
|
A==true,
|
|
!,
|
|
'test/1_1_$special_true/0'.
|
|
'test/1__0'(A,_) :-
|
|
nonvar(A),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
A=functor(B,C,D),
|
|
!,
|
|
'test/1_1_$special_functor/3'(B,C,D)
|
|
;
|
|
A=(E=F),
|
|
!,
|
|
'test/1_1_$special_=/2'(E,F)
|
|
)
|
|
;
|
|
A=(G;H),
|
|
!,
|
|
'test/1_1_$special_;/2'(G,H)
|
|
)
|
|
;
|
|
A=(I is J),
|
|
!,
|
|
'test/1_1_$special_is/2'(I,J)
|
|
)
|
|
;
|
|
A=(K<L),
|
|
!,
|
|
'test/1_1_$special_</2'(K,L)
|
|
)
|
|
;
|
|
A=(M>=N),
|
|
!,
|
|
'test/1_1_$special_>=/2'(M,N)
|
|
)
|
|
;
|
|
A=(O>P),
|
|
!,
|
|
'test/1_1_$special_>/2'(O,P)
|
|
)
|
|
;
|
|
A=(Q=\=R),
|
|
!,
|
|
'test/1_1_$special_=\\=/2'(Q,R)
|
|
)
|
|
;
|
|
A=(S=<T),
|
|
!,
|
|
'test/1_1_$special_=</2'(S,T)
|
|
)
|
|
;
|
|
A=(U\==V),
|
|
!,
|
|
'test/1_1_$special_\\==/2'(U,V)
|
|
).
|
|
'test/1__0'(A,_) :-
|
|
!,
|
|
'test/1_1_$default'(A).
|
|
cleanup :-
|
|
'cleanup/0__0'(_).
|
|
'cleanup/0__0'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4=:=4,
|
|
!,
|
|
'cleanup/0__0__0'(E,A).
|
|
'cleanup/0__0__0'([],A) :-
|
|
'cleanup/0__1'(A).
|
|
'cleanup/0__0__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(A),
|
|
'detach_known/1_1_$special_;/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__0__0'(B,C)
|
|
;
|
|
'cleanup/0__0__0'(B,C)
|
|
).
|
|
'cleanup/0__0'(A) :-
|
|
'cleanup/0__1'(A).
|
|
'cleanup/0__1'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\8=:=8,
|
|
!,
|
|
'cleanup/0__1__0'(E,A).
|
|
'cleanup/0__1__0'([],A) :-
|
|
'cleanup/0__2'(A).
|
|
'cleanup/0__1__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(A),
|
|
'detach_known/1_1_$special_nonvar/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__1__0'(B,C)
|
|
;
|
|
'cleanup/0__1__0'(B,C)
|
|
).
|
|
'cleanup/0__1'(A) :-
|
|
'cleanup/0__2'(A).
|
|
'cleanup/0__2'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\16=:=16,
|
|
!,
|
|
'cleanup/0__2__0'(E,A).
|
|
'cleanup/0__2__0'([],A) :-
|
|
'cleanup/0__3'(A).
|
|
'cleanup/0__2__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(A),
|
|
'detach_known/1_1_$special_var/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__2__0'(B,C)
|
|
;
|
|
'cleanup/0__2__0'(B,C)
|
|
).
|
|
'cleanup/0__2'(A) :-
|
|
'cleanup/0__3'(A).
|
|
'cleanup/0__3'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\32=:=32,
|
|
!,
|
|
'cleanup/0__3__0'(E,A).
|
|
'cleanup/0__3__0'([],A) :-
|
|
'cleanup/0__4'(A).
|
|
'cleanup/0__3__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(A),
|
|
'detach_known/1_1_$special_atom/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__3__0'(B,C)
|
|
;
|
|
'cleanup/0__3__0'(B,C)
|
|
).
|
|
'cleanup/0__3'(A) :-
|
|
'cleanup/0__4'(A).
|
|
'cleanup/0__4'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\64=:=64,
|
|
!,
|
|
'cleanup/0__4__0'(E,A).
|
|
'cleanup/0__4__0'([],A) :-
|
|
'cleanup/0__5'(A).
|
|
'cleanup/0__4__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(A),
|
|
'detach_known/1_1_$special_atomic/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__4__0'(B,C)
|
|
;
|
|
'cleanup/0__4__0'(B,C)
|
|
).
|
|
'cleanup/0__4'(A) :-
|
|
'cleanup/0__5'(A).
|
|
'cleanup/0__5'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\128=:=128,
|
|
!,
|
|
'cleanup/0__5__0'(E,A).
|
|
'cleanup/0__5__0'([],A) :-
|
|
'cleanup/0__6'(A).
|
|
'cleanup/0__5__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(A),
|
|
'detach_known/1_1_$special_compound/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__5__0'(B,C)
|
|
;
|
|
'cleanup/0__5__0'(B,C)
|
|
).
|
|
'cleanup/0__5'(A) :-
|
|
'cleanup/0__6'(A).
|
|
'cleanup/0__6'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\256=:=256,
|
|
!,
|
|
'cleanup/0__6__0'(E,A).
|
|
'cleanup/0__6__0'([],A) :-
|
|
'cleanup/0__7'(A).
|
|
'cleanup/0__6__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(A),
|
|
'detach_known/1_1_$special_ground/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__6__0'(B,C)
|
|
;
|
|
'cleanup/0__6__0'(B,C)
|
|
).
|
|
'cleanup/0__6'(A) :-
|
|
'cleanup/0__7'(A).
|
|
'cleanup/0__7'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\512=:=512,
|
|
!,
|
|
'cleanup/0__7__0'(E,A).
|
|
'cleanup/0__7__0'([],A) :-
|
|
'cleanup/0__8'(A).
|
|
'cleanup/0__7__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(A),
|
|
'detach_known/1_1_$special_integer/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__7__0'(B,C)
|
|
;
|
|
'cleanup/0__7__0'(B,C)
|
|
).
|
|
'cleanup/0__7'(A) :-
|
|
'cleanup/0__8'(A).
|
|
'cleanup/0__8'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\1024=:=1024,
|
|
!,
|
|
'cleanup/0__8__0'(E,A).
|
|
'cleanup/0__8__0'([],A) :-
|
|
'cleanup/0__9'(A).
|
|
'cleanup/0__8__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(A),
|
|
'detach_known/1_1_$special_float/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__8__0'(B,C)
|
|
;
|
|
'cleanup/0__8__0'(B,C)
|
|
).
|
|
'cleanup/0__8'(A) :-
|
|
'cleanup/0__9'(A).
|
|
'cleanup/0__9'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\2048=:=2048,
|
|
!,
|
|
'cleanup/0__9__0'(E,A).
|
|
'cleanup/0__9__0'([],A) :-
|
|
'cleanup/0__10'(A).
|
|
'cleanup/0__9__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(A),
|
|
'detach_known/1_1_$special_number/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__9__0'(B,C)
|
|
;
|
|
'cleanup/0__9__0'(B,C)
|
|
).
|
|
'cleanup/0__9'(A) :-
|
|
'cleanup/0__10'(A).
|
|
'cleanup/0__10'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4096=:=4096,
|
|
!,
|
|
'cleanup/0__10__0'(E,A).
|
|
'cleanup/0__10__0'([],A) :-
|
|
'cleanup/0__11'(A).
|
|
'cleanup/0__10__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(A),
|
|
'detach_known/1_1_$special_=\\=/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__10__0'(B,C)
|
|
;
|
|
'cleanup/0__10__0'(B,C)
|
|
).
|
|
'cleanup/0__10'(A) :-
|
|
'cleanup/0__11'(A).
|
|
'cleanup/0__11'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\8192=:=8192,
|
|
!,
|
|
'cleanup/0__11__0'(E,A).
|
|
'cleanup/0__11__0'([],A) :-
|
|
'cleanup/0__12'(A).
|
|
'cleanup/0__11__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(A),
|
|
'detach_known/1_1_$special_\\+/1/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__11__0'(B,C)
|
|
;
|
|
'cleanup/0__11__0'(B,C)
|
|
).
|
|
'cleanup/0__11'(A) :-
|
|
'cleanup/0__12'(A).
|
|
'cleanup/0__12'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\16384=:=16384,
|
|
!,
|
|
'cleanup/0__12__0'(E,A).
|
|
'cleanup/0__12__0'([],A) :-
|
|
'cleanup/0__13'(A).
|
|
'cleanup/0__12__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(A),
|
|
'detach_known/1_1_$special_functor/3/3'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__12__0'(B,C)
|
|
;
|
|
'cleanup/0__12__0'(B,C)
|
|
).
|
|
'cleanup/0__12'(A) :-
|
|
'cleanup/0__13'(A).
|
|
'cleanup/0__13'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_),
|
|
D/\32768=:=32768,
|
|
!,
|
|
'cleanup/0__13__0'(E,A).
|
|
'cleanup/0__13__0'([],A) :-
|
|
'cleanup/0__14'(A).
|
|
'cleanup/0__13__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(A),
|
|
'detach_known/1_1_$special_\\=/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__13__0'(B,C)
|
|
;
|
|
'cleanup/0__13__0'(B,C)
|
|
).
|
|
'cleanup/0__13'(A) :-
|
|
'cleanup/0__14'(A).
|
|
'cleanup/0__14'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_),
|
|
D/\65536=:=65536,
|
|
!,
|
|
'cleanup/0__14__0'(E,A).
|
|
'cleanup/0__14__0'([],A) :-
|
|
'cleanup/0__15'(A).
|
|
'cleanup/0__14__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(A),
|
|
'detach_known/1_1_$special_=/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__14__0'(B,C)
|
|
;
|
|
'cleanup/0__14__0'(B,C)
|
|
).
|
|
'cleanup/0__14'(A) :-
|
|
'cleanup/0__15'(A).
|
|
'cleanup/0__15'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_),
|
|
D/\131072=:=131072,
|
|
!,
|
|
'cleanup/0__15__0'(E,A).
|
|
'cleanup/0__15__0'([],A) :-
|
|
'cleanup/0__16'(A).
|
|
'cleanup/0__15__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(A),
|
|
'detach_known/1_1_$special_,/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__15__0'(B,C)
|
|
;
|
|
'cleanup/0__15__0'(B,C)
|
|
).
|
|
'cleanup/0__15'(A) :-
|
|
'cleanup/0__16'(A).
|
|
'cleanup/0__16'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_),
|
|
D/\262144=:=262144,
|
|
!,
|
|
'cleanup/0__16__0'(E,A).
|
|
'cleanup/0__16__0'([],A) :-
|
|
'cleanup/0__17'(A).
|
|
'cleanup/0__16__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(A),
|
|
'detach_known/1_1_$special_\\==/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__16__0'(B,C)
|
|
;
|
|
'cleanup/0__16__0'(B,C)
|
|
).
|
|
'cleanup/0__16'(A) :-
|
|
'cleanup/0__17'(A).
|
|
'cleanup/0__17'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_),
|
|
D/\524288=:=524288,
|
|
!,
|
|
'cleanup/0__17__0'(E,A).
|
|
'cleanup/0__17__0'([],A) :-
|
|
'cleanup/0__18'(A).
|
|
'cleanup/0__17__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(A),
|
|
'detach_known/1_1_$special_==/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__17__0'(B,C)
|
|
;
|
|
'cleanup/0__17__0'(B,C)
|
|
).
|
|
'cleanup/0__17'(A) :-
|
|
'cleanup/0__18'(A).
|
|
'cleanup/0__18'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_),
|
|
D/\1048576=:=1048576,
|
|
!,
|
|
'cleanup/0__18__0'(E,A).
|
|
'cleanup/0__18__0'([],A) :-
|
|
'cleanup/0__19'(A).
|
|
'cleanup/0__18__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_is/2/2'(A),
|
|
'detach_known/1_1_$special_is/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__18__0'(B,C)
|
|
;
|
|
'cleanup/0__18__0'(B,C)
|
|
).
|
|
'cleanup/0__18'(A) :-
|
|
'cleanup/0__19'(A).
|
|
'cleanup/0__19'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_),
|
|
D/\2097152=:=2097152,
|
|
!,
|
|
'cleanup/0__19__0'(E,A).
|
|
'cleanup/0__19__0'([],A) :-
|
|
'cleanup/0__20'(A).
|
|
'cleanup/0__19__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_</2/2'(A),
|
|
'detach_known/1_1_$special_</2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__19__0'(B,C)
|
|
;
|
|
'cleanup/0__19__0'(B,C)
|
|
).
|
|
'cleanup/0__19'(A) :-
|
|
'cleanup/0__20'(A).
|
|
'cleanup/0__20'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_),
|
|
D/\4194304=:=4194304,
|
|
!,
|
|
'cleanup/0__20__0'(E,A).
|
|
'cleanup/0__20__0'([],A) :-
|
|
'cleanup/0__21'(A).
|
|
'cleanup/0__20__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_>=/2/2'(A),
|
|
'detach_known/1_1_$special_>=/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__20__0'(B,C)
|
|
;
|
|
'cleanup/0__20__0'(B,C)
|
|
).
|
|
'cleanup/0__20'(A) :-
|
|
'cleanup/0__21'(A).
|
|
'cleanup/0__21'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_),
|
|
D/\8388608=:=8388608,
|
|
!,
|
|
'cleanup/0__21__0'(E,A).
|
|
'cleanup/0__21__0'([],A) :-
|
|
'cleanup/0__22'(A).
|
|
'cleanup/0__21__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_>/2/2'(A),
|
|
'detach_known/1_1_$special_>/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__21__0'(B,C)
|
|
;
|
|
'cleanup/0__21__0'(B,C)
|
|
).
|
|
'cleanup/0__21'(A) :-
|
|
'cleanup/0__22'(A).
|
|
'cleanup/0__22'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_),
|
|
D/\16777216=:=16777216,
|
|
!,
|
|
'cleanup/0__22__0'(E,A).
|
|
'cleanup/0__22__0'([],A) :-
|
|
'cleanup/0__23'(A).
|
|
'cleanup/0__22__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(A),
|
|
'detach_known/1_1_$special_=</2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__22__0'(B,C)
|
|
;
|
|
'cleanup/0__22__0'(B,C)
|
|
).
|
|
'cleanup/0__22'(A) :-
|
|
'cleanup/0__23'(A).
|
|
'cleanup/0__23'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E),
|
|
D/\33554432=:=33554432,
|
|
!,
|
|
'cleanup/0__23__0'(E,A).
|
|
'cleanup/0__23__0'([],A) :-
|
|
'cleanup/0__24'(A).
|
|
'cleanup/0__23__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(A),
|
|
'detach_known/1_1_$special_=:=/2/2'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__23__0'(B,C)
|
|
;
|
|
'cleanup/0__23__0'(B,C)
|
|
).
|
|
'cleanup/0__23'(A) :-
|
|
'cleanup/0__24'(A).
|
|
'cleanup/0__24'(A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
!,
|
|
'cleanup/0__24__0'(B,A).
|
|
'cleanup/0__24__0'([],A) :-
|
|
'cleanup/0__25'(A).
|
|
'cleanup/0__24__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,_,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_fail/0/0'(A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__24__0'(B,C)
|
|
;
|
|
'cleanup/0__24__0'(B,C)
|
|
).
|
|
'cleanup/0__24'(A) :-
|
|
'cleanup/0__25'(A).
|
|
'cleanup/0__25'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\2=:=2,
|
|
!,
|
|
'cleanup/0__25__0'(E,A).
|
|
'cleanup/0__25__0'([],A) :-
|
|
'cleanup/0__26'(A).
|
|
'cleanup/0__25__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$default/1'(A),
|
|
'detach_known/1_1_$default/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__25__0'(B,C)
|
|
;
|
|
'cleanup/0__25__0'(B,C)
|
|
).
|
|
'cleanup/0__25'(A) :-
|
|
'cleanup/0__26'(A).
|
|
'cleanup/0__26'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\1=:=1,
|
|
!,
|
|
'cleanup/0__26__0'(E,A).
|
|
'cleanup/0__26__0'([],A) :-
|
|
'cleanup/0__27'(A).
|
|
'cleanup/0__26__0'([A|B],C) :-
|
|
( A=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_variables/1'(A),
|
|
'detach_variables/1'(E,A)
|
|
;
|
|
true
|
|
),
|
|
'cleanup/0__26__0'(B,C)
|
|
;
|
|
'cleanup/0__26__0'(B,C)
|
|
).
|
|
'cleanup/0__26'(A) :-
|
|
'cleanup/0__27'(A).
|
|
'cleanup/0__27'(_) :-
|
|
!.
|
|
variables(A) :-
|
|
'variables/1__0'(A,_).
|
|
'variables/1__0'(A,B) :-
|
|
'chr default_store'(C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\16384=:=16384,
|
|
'chr sbag_member'(K,F),
|
|
K=suspension(_,G,_,_,_,_,H,I,J),
|
|
G=mutable(active),
|
|
ground(J),
|
|
ground(I),
|
|
var(H),
|
|
!,
|
|
remove_constraint_internal(K,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(K),
|
|
'detach_known/1_1_$special_functor/3/3'(N,K)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_variables/1'(B),
|
|
'detach_variables/1'(P,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
functor(H,I,J),
|
|
H=..[_|L],
|
|
append(L,A,M),
|
|
variables(M).
|
|
'variables/1__0'(C,D) :-
|
|
( var(D) ->
|
|
insert_constraint_internal(A,B,D,guard_entailment:'variables/1__0'(C,D),variables(C),[C])
|
|
;
|
|
activate_constraint(A,B,D,_)
|
|
),
|
|
( A==yes ->
|
|
'$insert_in_store_variables/1'(D),
|
|
'attach_variables/1'(B,D)
|
|
;
|
|
true
|
|
).
|
|
'test/1_1_$default'(A) :-
|
|
'test/1_1_$default/1__0'(A,_).
|
|
'test/1_1_$default/1__0'(_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$default/1__0'(B,_) :-
|
|
nonvar(B),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
B=nonvar(A),
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(E,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\8=:=8,
|
|
'chr sbag_member'(I,F),
|
|
I=suspension(_,G,_,_,_,_,H),
|
|
G=mutable(active),
|
|
H==A,
|
|
!
|
|
;
|
|
B=var(J),
|
|
'chr via_1'(J,K),
|
|
get_attr(K,guard_entailment,L),
|
|
L=v(M,_,_,_,_,N,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
M/\16=:=16,
|
|
'chr sbag_member'(Q,N),
|
|
Q=suspension(_,O,_,_,_,_,P),
|
|
O=mutable(active),
|
|
P==J,
|
|
!
|
|
)
|
|
;
|
|
B=atom(R),
|
|
'chr via_1'(R,S),
|
|
get_attr(S,guard_entailment,T),
|
|
T=v(U,_,_,_,_,_,V,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
U/\32=:=32,
|
|
'chr sbag_member'(Y,V),
|
|
Y=suspension(_,W,_,_,_,_,X),
|
|
W=mutable(active),
|
|
X==R,
|
|
!
|
|
)
|
|
;
|
|
B=atomic(Z),
|
|
'chr via_1'(Z,A1),
|
|
get_attr(A1,guard_entailment,B1),
|
|
B1=v(C1,_,_,_,_,_,_,D1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
C1/\64=:=64,
|
|
'chr sbag_member'(G1,D1),
|
|
G1=suspension(_,E1,_,_,_,_,F1),
|
|
E1=mutable(active),
|
|
F1==Z,
|
|
!
|
|
)
|
|
;
|
|
B=compound(H1),
|
|
'chr via_1'(H1,I1),
|
|
get_attr(I1,guard_entailment,J1),
|
|
J1=v(K1,_,_,_,_,_,_,_,L1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
K1/\128=:=128,
|
|
'chr sbag_member'(O1,L1),
|
|
O1=suspension(_,M1,_,_,_,_,N1),
|
|
M1=mutable(active),
|
|
N1==H1,
|
|
!
|
|
)
|
|
;
|
|
B=(P1\=Q1),
|
|
'chr via_2'(P1,Q1,R1),
|
|
get_attr(R1,guard_entailment,S1),
|
|
S1=v(T1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,U1,_,_,_,_,_,_,_,_,_,_),
|
|
T1/\32768=:=32768,
|
|
'chr sbag_member'(Y1,U1),
|
|
Y1=suspension(_,V1,_,_,_,_,W1,X1),
|
|
V1=mutable(active),
|
|
W1==P1,
|
|
X1==Q1,
|
|
!
|
|
).
|
|
'test/1_1_$default/1__0'(A,_) :-
|
|
A==fail,
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(D,B),
|
|
D=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$default/1__0'(A,_) :-
|
|
'chr via_1'(A,B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\2=:=2,
|
|
'chr sbag_member'(H,E),
|
|
H=suspension(_,F,_,_,_,_,G),
|
|
F=mutable(active),
|
|
G==A,
|
|
!.
|
|
'test/1_1_$default/1__0'(A,_) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4=:=4,
|
|
'chr sbag_member'(I,E),
|
|
I=suspension(_,F,_,_,_,_,G,H),
|
|
F=mutable(active),
|
|
!,
|
|
remove_constraint_internal(I,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(I),
|
|
'detach_known/1_1_$special_;/2/2'(K,I)
|
|
;
|
|
true
|
|
),
|
|
\+try(G,A),
|
|
!,
|
|
negate_b(G,J),
|
|
known(J),
|
|
\+try(H,A).
|
|
'test/1_1_$default/1__0'(_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_,/2'(A,B) :-
|
|
'test/1_1_$special_,/2/2__0'(A,B,_).
|
|
'test/1_1_$special_,/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_,/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_),
|
|
E/\131072=:=131072,
|
|
'chr sbag_member'(J,F),
|
|
J=suspension(_,G,_,_,_,_,H,I),
|
|
G=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_,/2/2__0'(A,B,_) :-
|
|
!,
|
|
test(A),
|
|
known(A),
|
|
test(B).
|
|
'test/1_1_$special_\\+/1'(A) :-
|
|
'test/1_1_$special_\\+/1/1__0'(A,_).
|
|
'test/1_1_$special_\\+/1/1__0'(_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_\\+/1/1__0'(A,_) :-
|
|
'chr via_1'(A,B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\8192=:=8192,
|
|
'chr sbag_member'(H,E),
|
|
H=suspension(_,F,_,_,_,_,G),
|
|
F=mutable(active),
|
|
G==A,
|
|
!.
|
|
'test/1_1_$special_\\+/1/1__0'(A,_) :-
|
|
nonvar(A),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
A=functor(B,C,D),
|
|
nonvar(B),
|
|
(
|
|
'chr lock'(B),
|
|
'chr lock'(C),
|
|
'chr lock'(D),
|
|
functor(B,C,D),
|
|
'chr unlock'(B),
|
|
'chr unlock'(C),
|
|
'chr unlock'(D),
|
|
!,
|
|
fail
|
|
;
|
|
!
|
|
)
|
|
;
|
|
A=ground(E),
|
|
ground(E),
|
|
!,
|
|
fail
|
|
)
|
|
;
|
|
A=number(F),
|
|
number(F),
|
|
!,
|
|
fail
|
|
)
|
|
;
|
|
A=float(G),
|
|
float(G),
|
|
!,
|
|
fail
|
|
)
|
|
;
|
|
A=integer(H),
|
|
integer(H),
|
|
!,
|
|
fail
|
|
)
|
|
;
|
|
A=number(I),
|
|
nonvar(I),
|
|
!
|
|
)
|
|
;
|
|
A=float(J),
|
|
nonvar(J),
|
|
!
|
|
)
|
|
;
|
|
A=integer(K),
|
|
nonvar(K),
|
|
!
|
|
).
|
|
'test/1_1_$special_\\+/1/1__0'(A,_) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4=:=4,
|
|
'chr sbag_member'(I,E),
|
|
I=suspension(_,F,_,_,_,_,G,H),
|
|
F=mutable(active),
|
|
!,
|
|
remove_constraint_internal(I,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(I),
|
|
'detach_known/1_1_$special_;/2/2'(K,I)
|
|
;
|
|
true
|
|
),
|
|
\+try(G,\+A),
|
|
!,
|
|
negate_b(G,J),
|
|
known(J),
|
|
\+try(H,\+A).
|
|
'test/1_1_$special_\\+/1/1__0'(_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_integer/1'(A) :-
|
|
'test/1_1_$special_integer/1/1__0'(A,_).
|
|
'test/1_1_$special_integer/1/1__0'(_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_integer/1/1__0'(A,_) :-
|
|
'chr via_1'(A,B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\512=:=512,
|
|
'chr sbag_member'(H,E),
|
|
H=suspension(_,F,_,_,_,_,G),
|
|
F=mutable(active),
|
|
G==A,
|
|
!.
|
|
'test/1_1_$special_integer/1/1__0'(A,_) :-
|
|
integer(A),
|
|
!.
|
|
'test/1_1_$special_integer/1/1__0'(A,_) :-
|
|
nonvar(A),
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_integer/1/1__0'(A,_) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4=:=4,
|
|
'chr sbag_member'(I,E),
|
|
I=suspension(_,F,_,_,_,_,G,H),
|
|
F=mutable(active),
|
|
!,
|
|
remove_constraint_internal(I,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(I),
|
|
'detach_known/1_1_$special_;/2/2'(K,I)
|
|
;
|
|
true
|
|
),
|
|
\+try(G,integer(A)),
|
|
!,
|
|
negate_b(G,J),
|
|
known(J),
|
|
\+try(H,integer(A)).
|
|
'test/1_1_$special_integer/1/1__0'(_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_float/1'(A) :-
|
|
'test/1_1_$special_float/1/1__0'(A,_).
|
|
'test/1_1_$special_float/1/1__0'(_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_float/1/1__0'(A,_) :-
|
|
'chr via_1'(A,B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\1024=:=1024,
|
|
'chr sbag_member'(H,E),
|
|
H=suspension(_,F,_,_,_,_,G),
|
|
F=mutable(active),
|
|
G==A,
|
|
!.
|
|
'test/1_1_$special_float/1/1__0'(A,_) :-
|
|
float(A),
|
|
!.
|
|
'test/1_1_$special_float/1/1__0'(A,_) :-
|
|
nonvar(A),
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_float/1/1__0'(A,_) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4=:=4,
|
|
'chr sbag_member'(I,E),
|
|
I=suspension(_,F,_,_,_,_,G,H),
|
|
F=mutable(active),
|
|
!,
|
|
remove_constraint_internal(I,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(I),
|
|
'detach_known/1_1_$special_;/2/2'(K,I)
|
|
;
|
|
true
|
|
),
|
|
\+try(G,float(A)),
|
|
!,
|
|
negate_b(G,J),
|
|
known(J),
|
|
\+try(H,float(A)).
|
|
'test/1_1_$special_float/1/1__0'(_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_number/1'(A) :-
|
|
'test/1_1_$special_number/1/1__0'(A,_).
|
|
'test/1_1_$special_number/1/1__0'(_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_number/1/1__0'(A,_) :-
|
|
'chr via_1'(A,B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\2048=:=2048,
|
|
'chr sbag_member'(H,E),
|
|
H=suspension(_,F,_,_,_,_,G),
|
|
F=mutable(active),
|
|
G==A,
|
|
!.
|
|
'test/1_1_$special_number/1/1__0'(A,_) :-
|
|
number(A),
|
|
!.
|
|
'test/1_1_$special_number/1/1__0'(A,_) :-
|
|
nonvar(A),
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_number/1/1__0'(A,_) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4=:=4,
|
|
'chr sbag_member'(I,E),
|
|
I=suspension(_,F,_,_,_,_,G,H),
|
|
F=mutable(active),
|
|
!,
|
|
remove_constraint_internal(I,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(I),
|
|
'detach_known/1_1_$special_;/2/2'(K,I)
|
|
;
|
|
true
|
|
),
|
|
\+try(G,number(A)),
|
|
!,
|
|
negate_b(G,J),
|
|
known(J),
|
|
\+try(H,number(A)).
|
|
'test/1_1_$special_number/1/1__0'(_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_ground/1'(A) :-
|
|
'test/1_1_$special_ground/1/1__0'(A,_).
|
|
'test/1_1_$special_ground/1/1__0'(_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_ground/1/1__0'(A,_) :-
|
|
'chr via_1'(A,B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\256=:=256,
|
|
'chr sbag_member'(H,E),
|
|
H=suspension(_,F,_,_,_,_,G),
|
|
F=mutable(active),
|
|
G==A,
|
|
!.
|
|
'test/1_1_$special_ground/1/1__0'(A,_) :-
|
|
ground(A),
|
|
!.
|
|
'test/1_1_$special_ground/1/1__0'(A,_) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(D,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D/\4=:=4,
|
|
'chr sbag_member'(I,E),
|
|
I=suspension(_,F,_,_,_,_,G,H),
|
|
F=mutable(active),
|
|
!,
|
|
remove_constraint_internal(I,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(I),
|
|
'detach_known/1_1_$special_;/2/2'(K,I)
|
|
;
|
|
true
|
|
),
|
|
\+try(G,ground(A)),
|
|
!,
|
|
negate_b(G,J),
|
|
known(J),
|
|
\+try(H,ground(A)).
|
|
'test/1_1_$special_ground/1/1__0'(_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_=:=/2'(A,B) :-
|
|
'test/1_1_$special_=:=/2/2__0'(A,B,_).
|
|
'test/1_1_$special_=:=/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_=:=/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F),
|
|
E/\33554432=:=33554432,
|
|
'chr sbag_member'(J,F),
|
|
J=suspension(_,G,_,_,_,_,H,I),
|
|
G=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_=:=/2/2__0'(A,B,_) :-
|
|
A==B,
|
|
!.
|
|
'test/1_1_$special_=:=/2/2__0'(A,B,_) :-
|
|
ground(B),
|
|
ground(A),
|
|
(
|
|
A=:=B,
|
|
!
|
|
;
|
|
A=\=B,
|
|
!,
|
|
fail
|
|
).
|
|
'test/1_1_$special_=:=/2/2__0'(A,B,_) :-
|
|
'chr default_store'(C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(E,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\4=:=4,
|
|
'chr sbag_member'(J,F),
|
|
J=suspension(_,G,_,_,_,_,H,I),
|
|
G=mutable(active),
|
|
!,
|
|
remove_constraint_internal(J,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(J),
|
|
'detach_known/1_1_$special_;/2/2'(L,J)
|
|
;
|
|
true
|
|
),
|
|
\+try(H,A=:=B),
|
|
!,
|
|
negate_b(H,K),
|
|
known(K),
|
|
\+try(I,A=:=B).
|
|
'test/1_1_$special_=:=/2/2__0'(_,_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_==/2'(A,B) :-
|
|
'test/1_1_$special_==/2/2__0'(A,B,_).
|
|
'test/1_1_$special_==/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_==/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_),
|
|
E/\524288=:=524288,
|
|
'chr sbag_member'(J,F),
|
|
J=suspension(_,G,_,_,_,_,H,I),
|
|
G=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_==/2/2__0'(A,B,_) :-
|
|
A==B,
|
|
!.
|
|
'test/1_1_$special_==/2/2__0'(A,B,_) :-
|
|
'chr default_store'(C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(E,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\4=:=4,
|
|
'chr sbag_member'(J,F),
|
|
J=suspension(_,G,_,_,_,_,H,I),
|
|
G=mutable(active),
|
|
!,
|
|
remove_constraint_internal(J,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(J),
|
|
'detach_known/1_1_$special_;/2/2'(L,J)
|
|
;
|
|
true
|
|
),
|
|
\+try(H,A==B),
|
|
!,
|
|
negate_b(H,K),
|
|
known(K),
|
|
\+try(I,A==B).
|
|
'test/1_1_$special_==/2/2__0'(_,_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_true/0' :-
|
|
'test/1_1_$special_true/0/0__0'(_).
|
|
'test/1_1_$special_true/0/0__0'(_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',A),
|
|
'chr sbag_member'(C,A),
|
|
C=suspension(_,B,_,_,_,_),
|
|
B=mutable(active),
|
|
!.
|
|
'test/1_1_$special_true/0/0__0'(_) :-
|
|
!.
|
|
'test/1_1_$special_functor/3'(A,B,C) :-
|
|
'test/1_1_$special_functor/3/3__0'(A,B,C,_).
|
|
'test/1_1_$special_functor/3/3__0'(_,_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_functor/3/3__0'(A,B,C,_) :-
|
|
'chr via'([A,B,C],E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\16384=:=16384,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,L,_,_,_,_,I,J,K),
|
|
L=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
K==C,
|
|
!.
|
|
'test/1_1_$special_functor/3/3__0'(A,B,C,_) :-
|
|
ground(C),
|
|
ground(B),
|
|
var(A),
|
|
'chr default_store'(E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\1=:=1,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,J,_,_,_,_,I),
|
|
J=mutable(active),
|
|
'chr lock'(A),
|
|
'chr lock'(I),
|
|
\+memberchk_eq(A,I),
|
|
'chr unlock'(A),
|
|
'chr unlock'(I),
|
|
!,
|
|
functor(A,B,C).
|
|
'test/1_1_$special_functor/3/3__0'(A,B,C,_) :-
|
|
nonvar(A),
|
|
(
|
|
'chr lock'(A),
|
|
'chr lock'(B),
|
|
'chr lock'(C),
|
|
functor(A,B,C),
|
|
'chr unlock'(A),
|
|
'chr unlock'(B),
|
|
'chr unlock'(C),
|
|
!
|
|
;
|
|
!,
|
|
fail
|
|
).
|
|
'test/1_1_$special_functor/3/3__0'(A,B,C,_) :-
|
|
'chr default_store'(E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\4=:=4,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
!,
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
\+try(I,functor(A,B,C)),
|
|
!,
|
|
negate_b(I,L),
|
|
known(L),
|
|
\+try(J,functor(A,B,C)).
|
|
'test/1_1_$special_functor/3/3__0'(_,_,_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_=/2'(A,B) :-
|
|
'test/1_1_$special_=/2/2__0'(A,B,_).
|
|
'test/1_1_$special_=/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_=/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_),
|
|
G/\65536=:=65536,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_=/2/2__0'(A,B,_) :-
|
|
ground(B),
|
|
ground(A),
|
|
!,
|
|
A=B.
|
|
'test/1_1_$special_=/2/2__0'(A,B,_) :-
|
|
'chr default_store'(D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
!,
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L,C)
|
|
;
|
|
true
|
|
),
|
|
\+try(H,A=B),
|
|
!,
|
|
negate_b(H,K),
|
|
known(K),
|
|
\+try(I,A=B).
|
|
'test/1_1_$special_=/2/2__0'(_,_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_;/2'(A,B) :-
|
|
'test/1_1_$special_;/2/2__0'(A,B,_).
|
|
'test/1_1_$special_;/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_;/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_;/2/2__0'(A,B,_) :-
|
|
A==fail,
|
|
!,
|
|
test(B).
|
|
'test/1_1_$special_;/2/2__0'(A,B,_) :-
|
|
B==fail,
|
|
!,
|
|
test(A).
|
|
'test/1_1_$special_;/2/2__0'(A,B,_) :-
|
|
!,
|
|
negate_b(A,C),
|
|
negate_b(B,D),
|
|
(
|
|
known(D),
|
|
test(A)
|
|
;
|
|
known(C),
|
|
test(B)
|
|
).
|
|
'test/1_1_$special_is/2'(A,B) :-
|
|
'test/1_1_$special_is/2/2__0'(A,B,_).
|
|
'test/1_1_$special_is/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_is/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_),
|
|
G/\1048576=:=1048576,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_is/2/2__0'(A,B,_) :-
|
|
!,
|
|
'test/1_1_$special_=:=/2'(A,B).
|
|
'test/1_1_$special_</2'(A,B) :-
|
|
'test/1_1_$special_</2/2__0'(A,B,_).
|
|
'test/1_1_$special_</2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_</2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_),
|
|
G/\2097152=:=2097152,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_</2/2__0'(A,B,_) :-
|
|
!,
|
|
'test/1_1_$special_,/2'(A=<B,A=\=B).
|
|
'test/1_1_$special_>=/2'(A,B) :-
|
|
'test/1_1_$special_>=/2/2__0'(A,B,_).
|
|
'test/1_1_$special_>=/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_>=/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_),
|
|
G/\4194304=:=4194304,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_>=/2/2__0'(A,B,_) :-
|
|
!,
|
|
'test/1_1_$special_=</2'(B,A).
|
|
'test/1_1_$special_>/2'(A,B) :-
|
|
'test/1_1_$special_>/2/2__0'(A,B,_).
|
|
'test/1_1_$special_>/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_>/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_),
|
|
G/\8388608=:=8388608,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_>/2/2__0'(A,B,_) :-
|
|
!,
|
|
'test/1_1_$special_</2'(B,A).
|
|
'test/1_1_$special_=\\=/2'(A,B) :-
|
|
'test/1_1_$special_=\\=/2/2__0'(A,B,_).
|
|
'test/1_1_$special_=\\=/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_=\\=/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4096=:=4096,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_=\\=/2/2__0'(A,B,_) :-
|
|
number(B),
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
(
|
|
H==A,
|
|
number(I),
|
|
B>I,
|
|
!
|
|
;
|
|
I==A,
|
|
number(H),
|
|
B<H,
|
|
!
|
|
).
|
|
'test/1_1_$special_=\\=/2/2__0'(A,B,_) :-
|
|
ground(B),
|
|
ground(A),
|
|
(
|
|
A=\=B,
|
|
!
|
|
;
|
|
A=:=B,
|
|
!,
|
|
fail
|
|
).
|
|
'test/1_1_$special_=\\=/2/2__0'(A,B,_) :-
|
|
'chr default_store'(D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
!,
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L,C)
|
|
;
|
|
true
|
|
),
|
|
\+try(H,A=\=B),
|
|
!,
|
|
negate_b(H,K),
|
|
known(K),
|
|
\+try(I,A=\=B).
|
|
'test/1_1_$special_=\\=/2/2__0'(_,_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_=</2'(A,B) :-
|
|
'test/1_1_$special_=</2/2__0'(A,B,_).
|
|
'test/1_1_$special_=</2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,G),
|
|
(
|
|
H/\16777216=:=16777216,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!
|
|
;
|
|
H/\33554432=:=33554432,
|
|
'chr sbag_member'(L,G),
|
|
L=suspension(_,O,_,_,_,_,M,N),
|
|
O=mutable(active),
|
|
M==A,
|
|
N==B,
|
|
!
|
|
).
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
number(B),
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F),
|
|
G/\33554432=:=33554432,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
number(I),
|
|
I=<B,
|
|
!.
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
number(A),
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F),
|
|
G/\33554432=:=33554432,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==B,
|
|
number(I),
|
|
A=<I,
|
|
!.
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
number(B),
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
number(I),
|
|
I=<B,
|
|
!.
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
number(A),
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
I==B,
|
|
number(H),
|
|
A=<H,
|
|
!.
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
A==B,
|
|
!.
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
ground(B),
|
|
ground(A),
|
|
(
|
|
A=<B,
|
|
!
|
|
;
|
|
A>B,
|
|
!,
|
|
fail
|
|
).
|
|
'test/1_1_$special_=</2/2__0'(A,B,_) :-
|
|
'chr default_store'(D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
!,
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L,C)
|
|
;
|
|
true
|
|
),
|
|
\+try(H,A=<B),
|
|
!,
|
|
negate_b(H,K),
|
|
known(K),
|
|
\+try(I,A=<B).
|
|
'test/1_1_$special_=</2/2__0'(_,_,_) :-
|
|
!,
|
|
fail.
|
|
'test/1_1_$special_\\==/2'(A,B) :-
|
|
'test/1_1_$special_\\==/2/2__0'(A,B,_).
|
|
'test/1_1_$special_\\==/2/2__0'(_,_,_) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',B),
|
|
'chr sbag_member'(A,B),
|
|
A=suspension(_,C,_,_,_,_),
|
|
C=mutable(active),
|
|
!.
|
|
'test/1_1_$special_\\==/2/2__0'(A,B,_) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_),
|
|
G/\262144=:=262144,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
H==A,
|
|
I==B,
|
|
!.
|
|
'test/1_1_$special_\\==/2/2__0'(A,B,_) :-
|
|
nonvar(B),
|
|
'chr lock'(B),
|
|
functor(B,C,D),
|
|
'chr unlock'(B),
|
|
!,
|
|
B=..[_|E],
|
|
length(F,D),
|
|
G=..[C|F],
|
|
add_args_nmatch(F,E,H),
|
|
I=(\+functor(A,C,D);functor(A,C,D),A=G,H),
|
|
test(I).
|
|
'test/1_1_$special_\\==/2/2__0'(A,B,_) :-
|
|
nonvar(A),
|
|
!,
|
|
'test/1_1_$special_\\==/2'(B,A).
|
|
'test/1_1_$special_\\==/2/2__0'(A,B,_) :-
|
|
'chr default_store'(D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H,I),
|
|
J=mutable(active),
|
|
!,
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L,C)
|
|
;
|
|
true
|
|
),
|
|
\+try(H,A\==B),
|
|
!,
|
|
negate_b(H,K),
|
|
known(K),
|
|
\+try(I,A\==B).
|
|
'test/1_1_$special_\\==/2/2__0'(_,_,_) :-
|
|
!,
|
|
fail.
|
|
'known/1_1_$default'(A) :-
|
|
'known/1_1_$default/1__0'(A,_).
|
|
'known/1_1_$default/1__0'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\2=:=2,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$default/1'(B),
|
|
'detach_known/1_1_$default/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$default/1__0'(A,B),B,'known/1_1_$default'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$default/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$default/1__0__0'([],A,B) :-
|
|
'known/1_1_$default/1__1'(A,B).
|
|
'known/1_1_$default/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$default/1'(C),
|
|
'detach_known/1_1_$default/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$default/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$default/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$default/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$default/1__0'(A,B),B,'known/1_1_$default'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$default/1__1'(A,B).
|
|
'known/1_1_$default/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$default/1'(A),
|
|
'detach_known/1_1_$default/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$default/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(H,_,_,F,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
H/\8192=:=8192,
|
|
'chr sbag_member'(C,G),
|
|
C=suspension(_,J,_,_,_,_,I),
|
|
J=mutable(active),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$default/1'(B),
|
|
'detach_known/1_1_$default/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
H/\4=:=4,
|
|
!,
|
|
'known/1_1_$default/1__1__0'(F,A,B)
|
|
).
|
|
'known/1_1_$default/1__1__0'([],A,B) :-
|
|
'known/1_1_$default/1__2'(A,B).
|
|
'known/1_1_$default/1__1__0'([C|D],A,B) :-
|
|
( C=suspension(_,H,_,_,_,_,E,F),
|
|
H=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
G==A ->
|
|
remove_constraint_internal(C,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(L,K,B,M),
|
|
( L==yes ->
|
|
'$insert_in_store_known/1_1_$default/1'(B),
|
|
'attach_known/1_1_$default/1'(K,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,N,_,O,_,_,_),
|
|
N=mutable(active),
|
|
O=mutable(M) ->
|
|
'chr update_mutable'(inactive,N),
|
|
'known/1_1_$default/1__1__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$default/1__1__0'(D,A,B)
|
|
).
|
|
'known/1_1_$default/1__1'(A,B) :-
|
|
'known/1_1_$default/1__2'(A,B).
|
|
'known/1_1_$default/1__2'(A,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$default/1__2__0'(E,A,B).
|
|
'known/1_1_$default/1__2__0'([],A,B) :-
|
|
'known/1_1_$default/1__3'(A,B).
|
|
'known/1_1_$default/1__2__0'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$default/1'(B),
|
|
'attach_known/1_1_$default/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$default/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$default/1__2__0'(D,A,B)
|
|
).
|
|
'known/1_1_$default/1__2'(A,B) :-
|
|
'known/1_1_$default/1__3'(A,B).
|
|
'known/1_1_$default/1__3'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$default/1'(A),
|
|
'attach_known/1_1_$default/1'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\4=:=4,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_;/2/2__0'(A,B,C),C,'known/1_1_$special_;/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_;/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_;/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_;/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_;/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_;/2/2__0'(A,B,C),C,'known/1_1_$special_;/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_;/2/2__1'(A,B,C).
|
|
'known/1_1_$special_;/2/2__1'(_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(A),
|
|
'detach_known/1_1_$special_;/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_;/2/2__1'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\8192=:=8192,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,L,_,_,_,_,I),
|
|
L=mutable(active),
|
|
nonvar(I),
|
|
I=(J;K),
|
|
J==A,
|
|
K==B,
|
|
!,
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(M,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,O,P),
|
|
( P==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(O,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_;/2/2__1'(A,B,C) :-
|
|
nonvar(A),
|
|
A=(\+D),
|
|
nonvar(D),
|
|
D=(E;F),
|
|
'chr via_2'(E,F,H),
|
|
get_attr(H,guard_entailment,I),
|
|
I=v(K,_,_,J,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
K/\4=:=4,
|
|
'chr sbag_member'(G,J),
|
|
G=suspension(_,N,_,_,_,_,L,M),
|
|
N=mutable(active),
|
|
L==E,
|
|
M==F,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,O,P),
|
|
( P==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(O,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B).
|
|
'known/1_1_$special_;/2/2__1'(A,B,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_;/2/2__1__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I;J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_;/2/2'(C),
|
|
'attach_known/1_1_$special_;/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_;/2/2__1__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_;/2/2__1__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
nonvar(A),
|
|
(
|
|
A=(\+D),
|
|
(
|
|
(
|
|
nonvar(D),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
D=nonvar(E),
|
|
'chr via_1'(E,G),
|
|
get_attr(G,guard_entailment,H),
|
|
H=v(J,_,_,_,I,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
J/\8=:=8,
|
|
'chr sbag_member'(F,I),
|
|
F=suspension(_,L,_,_,_,_,K),
|
|
L=mutable(active),
|
|
K==E,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(M,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
;
|
|
D=var(O),
|
|
'chr via_1'(O,Q),
|
|
get_attr(Q,guard_entailment,R),
|
|
R=v(T,_,_,_,_,S,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
T/\16=:=16,
|
|
'chr sbag_member'(P,S),
|
|
P=suspension(_,V,_,_,_,_,U),
|
|
V=mutable(active),
|
|
U==O,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,W,X),
|
|
( X==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(W,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=atom(Y),
|
|
'chr via_1'(Y,A1),
|
|
get_attr(A1,guard_entailment,B1),
|
|
B1=v(D1,_,_,_,_,_,C1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
D1/\32=:=32,
|
|
'chr sbag_member'(Z,C1),
|
|
Z=suspension(_,F1,_,_,_,_,E1),
|
|
F1=mutable(active),
|
|
E1==Y,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,G1,H1),
|
|
( H1==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(G1,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=atomic(I1),
|
|
'chr via_1'(I1,K1),
|
|
get_attr(K1,guard_entailment,L1),
|
|
L1=v(N1,_,_,_,_,_,_,M1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
N1/\64=:=64,
|
|
'chr sbag_member'(J1,M1),
|
|
J1=suspension(_,P1,_,_,_,_,O1),
|
|
P1=mutable(active),
|
|
O1==I1,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,Q1,R1),
|
|
( R1==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(Q1,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=compound(S1),
|
|
'chr via_1'(S1,U1),
|
|
get_attr(U1,guard_entailment,V1),
|
|
V1=v(X1,_,_,_,_,_,_,_,W1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
X1/\128=:=128,
|
|
'chr sbag_member'(T1,W1),
|
|
T1=suspension(_,Z1,_,_,_,_,Y1),
|
|
Z1=mutable(active),
|
|
Y1==S1,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,A2,B2),
|
|
( B2==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(A2,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=ground(C2),
|
|
'chr via_1'(C2,E2),
|
|
get_attr(E2,guard_entailment,F2),
|
|
F2=v(H2,_,_,_,_,_,_,_,_,G2,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H2/\256=:=256,
|
|
'chr sbag_member'(D2,G2),
|
|
D2=suspension(_,J2,_,_,_,_,I2),
|
|
J2=mutable(active),
|
|
I2==C2,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,K2,L2),
|
|
( L2==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K2,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=integer(M2),
|
|
'chr via_1'(M2,O2),
|
|
get_attr(O2,guard_entailment,P2),
|
|
P2=v(R2,_,_,_,_,_,_,_,_,_,Q2,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
R2/\512=:=512,
|
|
'chr sbag_member'(N2,Q2),
|
|
N2=suspension(_,T2,_,_,_,_,S2),
|
|
T2=mutable(active),
|
|
S2==M2,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,U2,V2),
|
|
( V2==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(U2,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=float(W2),
|
|
'chr via_1'(W2,Y2),
|
|
get_attr(Y2,guard_entailment,Z2),
|
|
Z2=v(B3,_,_,_,_,_,_,_,_,_,_,A3,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
B3/\1024=:=1024,
|
|
'chr sbag_member'(X2,A3),
|
|
X2=suspension(_,D3,_,_,_,_,C3),
|
|
D3=mutable(active),
|
|
C3==W2,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,E3,F3),
|
|
( F3==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(E3,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=number(G3),
|
|
'chr via_1'(G3,I3),
|
|
get_attr(I3,guard_entailment,J3),
|
|
J3=v(L3,_,_,_,_,_,_,_,_,_,_,_,K3,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
L3/\2048=:=2048,
|
|
'chr sbag_member'(H3,K3),
|
|
H3=suspension(_,N3,_,_,_,_,M3),
|
|
N3=mutable(active),
|
|
M3==G3,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,O3,P3),
|
|
( P3==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(O3,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(Q3=\=R3),
|
|
'chr via_2'(Q3,R3,T3),
|
|
get_attr(T3,guard_entailment,U3),
|
|
U3=v(W3,_,_,_,_,_,_,_,_,_,_,_,_,V3,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
W3/\4096=:=4096,
|
|
'chr sbag_member'(S3,V3),
|
|
S3=suspension(_,Z3,_,_,_,_,X3,Y3),
|
|
Z3=mutable(active),
|
|
X3==Q3,
|
|
Y3==R3,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,A4,B4),
|
|
( B4==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(A4,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(\+C4),
|
|
'chr via_1'(C4,E4),
|
|
get_attr(E4,guard_entailment,F4),
|
|
F4=v(H4,_,_,_,_,_,_,_,_,_,_,_,_,_,G4,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H4/\8192=:=8192,
|
|
'chr sbag_member'(D4,G4),
|
|
D4=suspension(_,J4,_,_,_,_,I4),
|
|
J4=mutable(active),
|
|
I4==C4,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,K4,L4),
|
|
( L4==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K4,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=functor(M4,N4,O4),
|
|
'chr via'([M4,N4,O4],Q4),
|
|
get_attr(Q4,guard_entailment,R4),
|
|
R4=v(T4,_,_,_,_,_,_,_,_,_,_,_,_,_,_,S4,_,_,_,_,_,_,_,_,_,_,_),
|
|
T4/\16384=:=16384,
|
|
'chr sbag_member'(P4,S4),
|
|
P4=suspension(_,X4,_,_,_,_,U4,V4,W4),
|
|
X4=mutable(active),
|
|
U4==M4,
|
|
V4==N4,
|
|
W4==O4,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,Y4,Z4),
|
|
( Z4==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(Y4,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(A5\=B5),
|
|
'chr via_2'(A5,B5,D5),
|
|
get_attr(D5,guard_entailment,E5),
|
|
E5=v(G5,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F5,_,_,_,_,_,_,_,_,_,_),
|
|
G5/\32768=:=32768,
|
|
'chr sbag_member'(C5,F5),
|
|
C5=suspension(_,J5,_,_,_,_,H5,I5),
|
|
J5=mutable(active),
|
|
H5==A5,
|
|
I5==B5,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,K5,L5),
|
|
( L5==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K5,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(M5=N5),
|
|
'chr via_2'(M5,N5,P5),
|
|
get_attr(P5,guard_entailment,Q5),
|
|
Q5=v(S5,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,R5,_,_,_,_,_,_,_,_,_),
|
|
S5/\65536=:=65536,
|
|
'chr sbag_member'(O5,R5),
|
|
O5=suspension(_,V5,_,_,_,_,T5,U5),
|
|
V5=mutable(active),
|
|
T5==M5,
|
|
U5==N5,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,W5,X5),
|
|
( X5==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(W5,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(Y5,Z5),
|
|
'chr via_2'(Y5,Z5,B6),
|
|
get_attr(B6,guard_entailment,C6),
|
|
C6=v(E6,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D6,_,_,_,_,_,_,_,_),
|
|
E6/\131072=:=131072,
|
|
'chr sbag_member'(A6,D6),
|
|
A6=suspension(_,H6,_,_,_,_,F6,G6),
|
|
H6=mutable(active),
|
|
F6==Y5,
|
|
G6==Z5,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,I6,J6),
|
|
( J6==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(I6,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(K6\==L6),
|
|
'chr via_2'(K6,L6,N6),
|
|
get_attr(N6,guard_entailment,O6),
|
|
O6=v(Q6,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,P6,_,_,_,_,_,_,_),
|
|
Q6/\262144=:=262144,
|
|
'chr sbag_member'(M6,P6),
|
|
M6=suspension(_,T6,_,_,_,_,R6,S6),
|
|
T6=mutable(active),
|
|
R6==K6,
|
|
S6==L6,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,U6,V6),
|
|
( V6==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(U6,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(W6==X6),
|
|
'chr via_2'(W6,X6,Z6),
|
|
get_attr(Z6,guard_entailment,A7),
|
|
A7=v(C7,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,B7,_,_,_,_,_,_),
|
|
C7/\524288=:=524288,
|
|
'chr sbag_member'(Y6,B7),
|
|
Y6=suspension(_,F7,_,_,_,_,D7,E7),
|
|
F7=mutable(active),
|
|
D7==W6,
|
|
E7==X6,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,G7,H7),
|
|
( H7==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(G7,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(I7 is J7),
|
|
'chr via_2'(I7,J7,L7),
|
|
get_attr(L7,guard_entailment,M7),
|
|
M7=v(O7,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,N7,_,_,_,_,_),
|
|
O7/\1048576=:=1048576,
|
|
'chr sbag_member'(K7,N7),
|
|
K7=suspension(_,R7,_,_,_,_,P7,Q7),
|
|
R7=mutable(active),
|
|
P7==I7,
|
|
Q7==J7,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,S7,T7),
|
|
( T7==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(S7,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(U7<V7),
|
|
'chr via_2'(U7,V7,X7),
|
|
get_attr(X7,guard_entailment,Y7),
|
|
Y7=v(A8,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,Z7,_,_,_,_),
|
|
A8/\2097152=:=2097152,
|
|
'chr sbag_member'(W7,Z7),
|
|
W7=suspension(_,D8,_,_,_,_,B8,C8),
|
|
D8=mutable(active),
|
|
B8==U7,
|
|
C8==V7,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,E8,F8),
|
|
( F8==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(E8,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(G8>=H8),
|
|
'chr via_2'(G8,H8,J8),
|
|
get_attr(J8,guard_entailment,K8),
|
|
K8=v(M8,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,L8,_,_,_),
|
|
M8/\4194304=:=4194304,
|
|
'chr sbag_member'(I8,L8),
|
|
I8=suspension(_,P8,_,_,_,_,N8,O8),
|
|
P8=mutable(active),
|
|
N8==G8,
|
|
O8==H8,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,Q8,R8),
|
|
( R8==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(Q8,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(S8>T8),
|
|
'chr via_2'(S8,T8,V8),
|
|
get_attr(V8,guard_entailment,W8),
|
|
W8=v(Y8,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,X8,_,_),
|
|
Y8/\8388608=:=8388608,
|
|
'chr sbag_member'(U8,X8),
|
|
U8=suspension(_,B9,_,_,_,_,Z8,A9),
|
|
B9=mutable(active),
|
|
Z8==S8,
|
|
A9==T8,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,C9,D9),
|
|
( D9==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(C9,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(E9=<F9),
|
|
'chr via_2'(E9,F9,H9),
|
|
get_attr(H9,guard_entailment,I9),
|
|
I9=v(K9,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,J9,_),
|
|
K9/\16777216=:=16777216,
|
|
'chr sbag_member'(G9,J9),
|
|
G9=suspension(_,N9,_,_,_,_,L9,M9),
|
|
N9=mutable(active),
|
|
L9==E9,
|
|
M9==F9,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,O9,P9),
|
|
( P9==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(O9,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D=(Q9=:=R9),
|
|
'chr via_2'(Q9,R9,T9),
|
|
get_attr(T9,guard_entailment,U9),
|
|
U9=v(W9,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,V9),
|
|
W9/\33554432=:=33554432,
|
|
'chr sbag_member'(S9,V9),
|
|
S9=suspension(_,Z9,_,_,_,_,X9,Y9),
|
|
Z9=mutable(active),
|
|
X9==Q9,
|
|
Y9==R9,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,A10,B10),
|
|
( B10==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(A10,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
D==fail,
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',D10),
|
|
'chr sbag_member'(C10,D10),
|
|
C10=suspension(_,E10,_,_,_,_),
|
|
E10=mutable(active),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,F10,G10),
|
|
( G10==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(F10,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
'chr via_1'(D,I10),
|
|
get_attr(I10,guard_entailment,J10),
|
|
J10=v(L10,_,K10,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
L10/\2=:=2,
|
|
'chr sbag_member'(H10,K10),
|
|
H10=suspension(_,N10,_,_,_,_,M10),
|
|
N10=mutable(active),
|
|
M10==D,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,O10,P10),
|
|
( P10==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(O10,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
A=(Q10,_),
|
|
nonvar(Q10),
|
|
Q10=(\+R10),
|
|
nonvar(R10),
|
|
R10=(S10;T10),
|
|
'chr via_2'(S10,T10,V10),
|
|
get_attr(V10,guard_entailment,W10),
|
|
W10=v(Y10,_,_,X10,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
Y10/\4=:=4,
|
|
'chr sbag_member'(U10,X10),
|
|
U10=suspension(_,B11,_,_,_,_,Z10,A11),
|
|
B11=mutable(active),
|
|
Z10==S10,
|
|
A11==T10,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,C11,D11),
|
|
( D11==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(C11,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
).
|
|
'known/1_1_$special_;/2/2__2'(A,B,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_;/2/2__2__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J;K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_;/2/2'(C),
|
|
'attach_known/1_1_$special_;/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_;/2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_;/2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
nonvar(A),
|
|
A=(D,_),
|
|
nonvar(D),
|
|
D=(\+E),
|
|
(
|
|
(
|
|
nonvar(E),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
E=nonvar(F),
|
|
'chr via_1'(F,H),
|
|
get_attr(H,guard_entailment,I),
|
|
I=v(K,_,_,_,J,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
K/\8=:=8,
|
|
'chr sbag_member'(G,J),
|
|
G=suspension(_,M,_,_,_,_,L),
|
|
M=mutable(active),
|
|
L==F,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(N,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
;
|
|
E=var(P),
|
|
'chr via_1'(P,R),
|
|
get_attr(R,guard_entailment,S),
|
|
S=v(U,_,_,_,_,T,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
U/\16=:=16,
|
|
'chr sbag_member'(Q,T),
|
|
Q=suspension(_,W,_,_,_,_,V),
|
|
W=mutable(active),
|
|
V==P,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,X,Y),
|
|
( Y==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(X,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=atom(Z),
|
|
'chr via_1'(Z,B1),
|
|
get_attr(B1,guard_entailment,C1),
|
|
C1=v(E1,_,_,_,_,_,D1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E1/\32=:=32,
|
|
'chr sbag_member'(A1,D1),
|
|
A1=suspension(_,G1,_,_,_,_,F1),
|
|
G1=mutable(active),
|
|
F1==Z,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,H1,I1),
|
|
( I1==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(H1,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=atomic(J1),
|
|
'chr via_1'(J1,L1),
|
|
get_attr(L1,guard_entailment,M1),
|
|
M1=v(O1,_,_,_,_,_,_,N1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
O1/\64=:=64,
|
|
'chr sbag_member'(K1,N1),
|
|
K1=suspension(_,Q1,_,_,_,_,P1),
|
|
Q1=mutable(active),
|
|
P1==J1,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,R1,S1),
|
|
( S1==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(R1,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=compound(T1),
|
|
'chr via_1'(T1,V1),
|
|
get_attr(V1,guard_entailment,W1),
|
|
W1=v(Y1,_,_,_,_,_,_,_,X1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
Y1/\128=:=128,
|
|
'chr sbag_member'(U1,X1),
|
|
U1=suspension(_,A2,_,_,_,_,Z1),
|
|
A2=mutable(active),
|
|
Z1==T1,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,B2,C2),
|
|
( C2==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(B2,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=ground(D2),
|
|
'chr via_1'(D2,F2),
|
|
get_attr(F2,guard_entailment,G2),
|
|
G2=v(I2,_,_,_,_,_,_,_,_,H2,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
I2/\256=:=256,
|
|
'chr sbag_member'(E2,H2),
|
|
E2=suspension(_,K2,_,_,_,_,J2),
|
|
K2=mutable(active),
|
|
J2==D2,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L2,M2),
|
|
( M2==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L2,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=integer(N2),
|
|
'chr via_1'(N2,P2),
|
|
get_attr(P2,guard_entailment,Q2),
|
|
Q2=v(S2,_,_,_,_,_,_,_,_,_,R2,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
S2/\512=:=512,
|
|
'chr sbag_member'(O2,R2),
|
|
O2=suspension(_,U2,_,_,_,_,T2),
|
|
U2=mutable(active),
|
|
T2==N2,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,V2,W2),
|
|
( W2==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(V2,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=float(X2),
|
|
'chr via_1'(X2,Z2),
|
|
get_attr(Z2,guard_entailment,A3),
|
|
A3=v(C3,_,_,_,_,_,_,_,_,_,_,B3,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
C3/\1024=:=1024,
|
|
'chr sbag_member'(Y2,B3),
|
|
Y2=suspension(_,E3,_,_,_,_,D3),
|
|
E3=mutable(active),
|
|
D3==X2,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,F3,G3),
|
|
( G3==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(F3,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=number(H3),
|
|
'chr via_1'(H3,J3),
|
|
get_attr(J3,guard_entailment,K3),
|
|
K3=v(M3,_,_,_,_,_,_,_,_,_,_,_,L3,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
M3/\2048=:=2048,
|
|
'chr sbag_member'(I3,L3),
|
|
I3=suspension(_,O3,_,_,_,_,N3),
|
|
O3=mutable(active),
|
|
N3==H3,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P3,Q3),
|
|
( Q3==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(P3,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(R3=\=S3),
|
|
'chr via_2'(R3,S3,U3),
|
|
get_attr(U3,guard_entailment,V3),
|
|
V3=v(X3,_,_,_,_,_,_,_,_,_,_,_,_,W3,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
X3/\4096=:=4096,
|
|
'chr sbag_member'(T3,W3),
|
|
T3=suspension(_,A4,_,_,_,_,Y3,Z3),
|
|
A4=mutable(active),
|
|
Y3==R3,
|
|
Z3==S3,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,B4,C4),
|
|
( C4==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(B4,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(\+D4),
|
|
'chr via_1'(D4,F4),
|
|
get_attr(F4,guard_entailment,G4),
|
|
G4=v(I4,_,_,_,_,_,_,_,_,_,_,_,_,_,H4,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
I4/\8192=:=8192,
|
|
'chr sbag_member'(E4,H4),
|
|
E4=suspension(_,K4,_,_,_,_,J4),
|
|
K4=mutable(active),
|
|
J4==D4,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L4,M4),
|
|
( M4==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L4,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=functor(N4,O4,P4),
|
|
'chr via'([N4,O4,P4],R4),
|
|
get_attr(R4,guard_entailment,S4),
|
|
S4=v(U4,_,_,_,_,_,_,_,_,_,_,_,_,_,_,T4,_,_,_,_,_,_,_,_,_,_,_),
|
|
U4/\16384=:=16384,
|
|
'chr sbag_member'(Q4,T4),
|
|
Q4=suspension(_,Y4,_,_,_,_,V4,W4,X4),
|
|
Y4=mutable(active),
|
|
V4==N4,
|
|
W4==O4,
|
|
X4==P4,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,Z4,A5),
|
|
( A5==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(Z4,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(B5\=C5),
|
|
'chr via_2'(B5,C5,E5),
|
|
get_attr(E5,guard_entailment,F5),
|
|
F5=v(H5,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G5,_,_,_,_,_,_,_,_,_,_),
|
|
H5/\32768=:=32768,
|
|
'chr sbag_member'(D5,G5),
|
|
D5=suspension(_,K5,_,_,_,_,I5,J5),
|
|
K5=mutable(active),
|
|
I5==B5,
|
|
J5==C5,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L5,M5),
|
|
( M5==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L5,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(N5=O5),
|
|
'chr via_2'(N5,O5,Q5),
|
|
get_attr(Q5,guard_entailment,R5),
|
|
R5=v(T5,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,S5,_,_,_,_,_,_,_,_,_),
|
|
T5/\65536=:=65536,
|
|
'chr sbag_member'(P5,S5),
|
|
P5=suspension(_,W5,_,_,_,_,U5,V5),
|
|
W5=mutable(active),
|
|
U5==N5,
|
|
V5==O5,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,X5,Y5),
|
|
( Y5==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(X5,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(Z5,A6),
|
|
'chr via_2'(Z5,A6,C6),
|
|
get_attr(C6,guard_entailment,D6),
|
|
D6=v(F6,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E6,_,_,_,_,_,_,_,_),
|
|
F6/\131072=:=131072,
|
|
'chr sbag_member'(B6,E6),
|
|
B6=suspension(_,I6,_,_,_,_,G6,H6),
|
|
I6=mutable(active),
|
|
G6==Z5,
|
|
H6==A6,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,J6,K6),
|
|
( K6==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J6,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(L6\==M6),
|
|
'chr via_2'(L6,M6,O6),
|
|
get_attr(O6,guard_entailment,P6),
|
|
P6=v(R6,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,Q6,_,_,_,_,_,_,_),
|
|
R6/\262144=:=262144,
|
|
'chr sbag_member'(N6,Q6),
|
|
N6=suspension(_,U6,_,_,_,_,S6,T6),
|
|
U6=mutable(active),
|
|
S6==L6,
|
|
T6==M6,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,V6,W6),
|
|
( W6==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(V6,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(X6==Y6),
|
|
'chr via_2'(X6,Y6,A7),
|
|
get_attr(A7,guard_entailment,B7),
|
|
B7=v(D7,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,C7,_,_,_,_,_,_),
|
|
D7/\524288=:=524288,
|
|
'chr sbag_member'(Z6,C7),
|
|
Z6=suspension(_,G7,_,_,_,_,E7,F7),
|
|
G7=mutable(active),
|
|
E7==X6,
|
|
F7==Y6,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,H7,I7),
|
|
( I7==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(H7,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(J7 is K7),
|
|
'chr via_2'(J7,K7,M7),
|
|
get_attr(M7,guard_entailment,N7),
|
|
N7=v(P7,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,O7,_,_,_,_,_),
|
|
P7/\1048576=:=1048576,
|
|
'chr sbag_member'(L7,O7),
|
|
L7=suspension(_,S7,_,_,_,_,Q7,R7),
|
|
S7=mutable(active),
|
|
Q7==J7,
|
|
R7==K7,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,T7,U7),
|
|
( U7==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(T7,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(V7<W7),
|
|
'chr via_2'(V7,W7,Y7),
|
|
get_attr(Y7,guard_entailment,Z7),
|
|
Z7=v(B8,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,A8,_,_,_,_),
|
|
B8/\2097152=:=2097152,
|
|
'chr sbag_member'(X7,A8),
|
|
X7=suspension(_,E8,_,_,_,_,C8,D8),
|
|
E8=mutable(active),
|
|
C8==V7,
|
|
D8==W7,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,F8,G8),
|
|
( G8==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(F8,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(H8>=I8),
|
|
'chr via_2'(H8,I8,K8),
|
|
get_attr(K8,guard_entailment,L8),
|
|
L8=v(N8,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,M8,_,_,_),
|
|
N8/\4194304=:=4194304,
|
|
'chr sbag_member'(J8,M8),
|
|
J8=suspension(_,Q8,_,_,_,_,O8,P8),
|
|
Q8=mutable(active),
|
|
O8==H8,
|
|
P8==I8,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,R8,S8),
|
|
( S8==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(R8,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(T8>U8),
|
|
'chr via_2'(T8,U8,W8),
|
|
get_attr(W8,guard_entailment,X8),
|
|
X8=v(Z8,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,Y8,_,_),
|
|
Z8/\8388608=:=8388608,
|
|
'chr sbag_member'(V8,Y8),
|
|
V8=suspension(_,C9,_,_,_,_,A9,B9),
|
|
C9=mutable(active),
|
|
A9==T8,
|
|
B9==U8,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D9,E9),
|
|
( E9==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(D9,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(F9=<G9),
|
|
'chr via_2'(F9,G9,I9),
|
|
get_attr(I9,guard_entailment,J9),
|
|
J9=v(L9,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,K9,_),
|
|
L9/\16777216=:=16777216,
|
|
'chr sbag_member'(H9,K9),
|
|
H9=suspension(_,O9,_,_,_,_,M9,N9),
|
|
O9=mutable(active),
|
|
M9==F9,
|
|
N9==G9,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P9,Q9),
|
|
( Q9==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(P9,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E=(R9=:=S9),
|
|
'chr via_2'(R9,S9,U9),
|
|
get_attr(U9,guard_entailment,V9),
|
|
V9=v(X9,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,W9),
|
|
X9/\33554432=:=33554432,
|
|
'chr sbag_member'(T9,W9),
|
|
T9=suspension(_,A10,_,_,_,_,Y9,Z9),
|
|
A10=mutable(active),
|
|
Y9==R9,
|
|
Z9==S9,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,B10,C10),
|
|
( C10==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(B10,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
E==fail,
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',E10),
|
|
'chr sbag_member'(D10,E10),
|
|
D10=suspension(_,F10,_,_,_,_),
|
|
F10=mutable(active),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,G10,H10),
|
|
( H10==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(G10,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
'chr via_1'(E,J10),
|
|
get_attr(J10,guard_entailment,K10),
|
|
K10=v(M10,_,L10,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
M10/\2=:=2,
|
|
'chr sbag_member'(I10,L10),
|
|
I10=suspension(_,O10,_,_,_,_,N10),
|
|
O10=mutable(active),
|
|
N10==E,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P10,Q10),
|
|
( Q10==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(P10,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
).
|
|
'known/1_1_$special_;/2/2__3'(A,B,C) :-
|
|
'chr via_1'(A,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\8192=:=8192,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,J,_,_,_,_,I),
|
|
J=mutable(active),
|
|
I==A,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B).
|
|
'known/1_1_$special_;/2/2__3'(A,B,C) :-
|
|
nonvar(A),
|
|
A=(D,_),
|
|
'chr via_1'(D,F),
|
|
get_attr(F,guard_entailment,G),
|
|
G=v(I,_,_,_,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(E,H),
|
|
E=suspension(_,K,_,_,_,_,J),
|
|
K=mutable(active),
|
|
J==D,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B).
|
|
'known/1_1_$special_;/2/2__3'(A,B,C) :-
|
|
A==fail,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B).
|
|
'known/1_1_$special_;/2/2__3'(A,B,C) :-
|
|
B==fail,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(A).
|
|
'known/1_1_$special_;/2/2__3'(A,_,B) :-
|
|
A==true,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,C,D),
|
|
( D==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(B),
|
|
'detach_known/1_1_$special_;/2/2'(C,B)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_;/2/2__3'(_,A,B) :-
|
|
A==true,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,C,D),
|
|
( D==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(B),
|
|
'detach_known/1_1_$special_;/2/2'(C,B)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_;/2/2__3'(A,B,C) :-
|
|
nonvar(A),
|
|
A=(\+D),
|
|
nonvar(D),
|
|
D=functor(E,F,G),
|
|
(
|
|
(
|
|
'chr via_1'(E,I),
|
|
get_attr(I,guard_entailment,J),
|
|
J=v(L,_,_,_,_,_,_,_,_,_,_,_,_,_,_,K,_,_,_,_,_,_,_,_,_,_,_),
|
|
L/\16384=:=16384,
|
|
'chr sbag_member'(H,K),
|
|
H=suspension(_,N,_,_,_,_,M,_,_),
|
|
N=mutable(active),
|
|
M==E,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,O,P),
|
|
( P==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(O,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
nonvar(E),
|
|
'chr lock'(E),
|
|
'chr lock'(F),
|
|
'chr lock'(G),
|
|
functor(E,F,G),
|
|
'chr unlock'(E),
|
|
'chr unlock'(F),
|
|
'chr unlock'(G),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,Q,R),
|
|
( R==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(Q,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(B)
|
|
)
|
|
;
|
|
nonvar(E),
|
|
'chr lock'(E),
|
|
'chr lock'(F),
|
|
'chr lock'(G),
|
|
\+functor(E,F,G),
|
|
'chr unlock'(E),
|
|
'chr unlock'(F),
|
|
'chr unlock'(G),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,S,T),
|
|
( T==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(S,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
).
|
|
'known/1_1_$special_;/2/2__3'(_,_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_;/2/2'(A),
|
|
'attach_known/1_1_$special_;/2/2'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8=:=8,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(B),
|
|
'detach_known/1_1_$special_nonvar/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_nonvar/1/1__0'(A,B),B,'known/1_1_$special_nonvar/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1/1__0__0'(F,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(C),
|
|
'detach_known/1_1_$special_nonvar/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_nonvar/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_nonvar/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_nonvar/1/1__0'(A,B),B,'known/1_1_$special_nonvar/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1/1__1'(A,B).
|
|
'known/1_1_$special_nonvar/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(A),
|
|
'detach_known/1_1_$special_nonvar/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_nonvar/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(I,_,_,F,_,G,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(C,H),
|
|
C=suspension(_,L,_,_,_,_,J),
|
|
L=mutable(active),
|
|
nonvar(J),
|
|
J=nonvar(K),
|
|
K==A,
|
|
!,
|
|
remove_constraint_internal(C,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(M,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,O,P),
|
|
( P==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(B),
|
|
'detach_known/1_1_$special_nonvar/1/1'(O,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\16=:=16,
|
|
'chr sbag_member'(Q,G),
|
|
Q=suspension(_,S,_,_,_,_,R),
|
|
S=mutable(active),
|
|
R==A,
|
|
!,
|
|
remove_constraint_internal(Q,T,U),
|
|
( U==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(Q),
|
|
'detach_known/1_1_$special_var/1/1'(T,Q)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,V,W),
|
|
( W==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(B),
|
|
'detach_known/1_1_$special_nonvar/1/1'(V,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
I/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_nonvar/1/1__1__0'(F,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=nonvar(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_nonvar/1/1'(B),
|
|
'attach_known/1_1_$special_nonvar/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_nonvar/1/1__1__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_nonvar/1/1__1__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_nonvar/1/1__2__0'(E,A,B).
|
|
'known/1_1_$special_nonvar/1/1__2__0'([],A,B) :-
|
|
'known/1_1_$special_nonvar/1/1__3'(A,B).
|
|
'known/1_1_$special_nonvar/1/1__2__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=nonvar(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_nonvar/1/1'(B),
|
|
'attach_known/1_1_$special_nonvar/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_nonvar/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_nonvar/1/1__2__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_nonvar/1/1__2'(A,B) :-
|
|
'known/1_1_$special_nonvar/1/1__3'(A,B).
|
|
'known/1_1_$special_nonvar/1/1__3'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_nonvar/1/1'(A),
|
|
'attach_known/1_1_$special_nonvar/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\16=:=16,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(B),
|
|
'detach_known/1_1_$special_var/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_var/1/1__0'(A,B),B,'known/1_1_$special_var/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_var/1/1__0__0'(F,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(C),
|
|
'detach_known/1_1_$special_var/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_var/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_var/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_var/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_var/1/1__0'(A,B),B,'known/1_1_$special_var/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_var/1/1__1'(A,B).
|
|
'known/1_1_$special_var/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(A),
|
|
'detach_known/1_1_$special_var/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_var/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(I,_,_,F,G,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(C,H),
|
|
C=suspension(_,L,_,_,_,_,J),
|
|
L=mutable(active),
|
|
nonvar(J),
|
|
J=var(K),
|
|
K==A,
|
|
!,
|
|
remove_constraint_internal(C,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(M,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,O,P),
|
|
( P==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(B),
|
|
'detach_known/1_1_$special_var/1/1'(O,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\8=:=8,
|
|
'chr sbag_member'(Q,G),
|
|
Q=suspension(_,S,_,_,_,_,R),
|
|
S=mutable(active),
|
|
R==A,
|
|
!,
|
|
remove_constraint_internal(Q,T,U),
|
|
( U==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(Q),
|
|
'detach_known/1_1_$special_nonvar/1/1'(T,Q)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,V,W),
|
|
( W==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(B),
|
|
'detach_known/1_1_$special_var/1/1'(V,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
I/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_var/1/1__1__0'(F,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=var(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_var/1/1'(B),
|
|
'attach_known/1_1_$special_var/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_var/1/1__1__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_var/1/1__1__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_var/1/1__2__0'(E,A,B).
|
|
'known/1_1_$special_var/1/1__2__0'([],A,B) :-
|
|
'known/1_1_$special_var/1/1__3'(A,B).
|
|
'known/1_1_$special_var/1/1__2__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=var(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_var/1/1'(B),
|
|
'attach_known/1_1_$special_var/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_var/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_var/1/1__2__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_var/1/1__2'(A,B) :-
|
|
'known/1_1_$special_var/1/1__3'(A,B).
|
|
'known/1_1_$special_var/1/1__3'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_var/1/1'(A),
|
|
'attach_known/1_1_$special_var/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\32=:=32,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(B),
|
|
'detach_known/1_1_$special_atom/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_atom/1/1__0'(A,B),B,'known/1_1_$special_atom/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_atom/1/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$special_atom/1/1__0__0'([],A,B) :-
|
|
'known/1_1_$special_atom/1/1__1'(A,B).
|
|
'known/1_1_$special_atom/1/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(C),
|
|
'detach_known/1_1_$special_atom/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_atom/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_atom/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_atom/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_atom/1/1__0'(A,B),B,'known/1_1_$special_atom/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_atom/1/1__1'(A,B).
|
|
'known/1_1_$special_atom/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(A),
|
|
'detach_known/1_1_$special_atom/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_atom/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8192=:=8192,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H),
|
|
J=mutable(active),
|
|
nonvar(H),
|
|
H=atom(I),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(B),
|
|
'detach_known/1_1_$special_atom/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_atom/1/1__1'(A,B) :-
|
|
'chr novel_production'(B,239),
|
|
!,
|
|
'chr extend_history'(B,239),
|
|
activate_constraint(D,C,B,E),
|
|
( D==yes ->
|
|
'$insert_in_store_known/1_1_$special_atom/1/1'(B),
|
|
'attach_known/1_1_$special_atom/1/1'(C,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1'(A),
|
|
( B=suspension(_,F,_,G,_,_,_),
|
|
F=mutable(active),
|
|
G=mutable(E) ->
|
|
'chr update_mutable'(inactive,F),
|
|
'known/1_1_$special_atom/1/1__2'(A,B)
|
|
;
|
|
true
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_atom/1/1__2__0'(E,A,B).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=atom(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_atom/1/1'(B),
|
|
'attach_known/1_1_$special_atom/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_atom/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_atom/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_atom/1/1__3__0'(E,A,B).
|
|
'known/1_1_$special_atom/1/1__3__0'([],A,B) :-
|
|
'known/1_1_$special_atom/1/1__4'(A,B).
|
|
'known/1_1_$special_atom/1/1__3__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=atom(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_atom/1/1'(B),
|
|
'attach_known/1_1_$special_atom/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_atom/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_atom/1/1__3__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_atom/1/1__3'(A,B) :-
|
|
'known/1_1_$special_atom/1/1__4'(A,B).
|
|
'known/1_1_$special_atom/1/1__4'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_atom/1/1'(A),
|
|
'attach_known/1_1_$special_atom/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\64=:=64,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(B),
|
|
'detach_known/1_1_$special_atomic/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_atomic/1/1__0'(A,B),B,'known/1_1_$special_atomic/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_atomic/1/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$special_atomic/1/1__0__0'([],A,B) :-
|
|
'known/1_1_$special_atomic/1/1__1'(A,B).
|
|
'known/1_1_$special_atomic/1/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(C),
|
|
'detach_known/1_1_$special_atomic/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_atomic/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_atomic/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_atomic/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_atomic/1/1__0'(A,B),B,'known/1_1_$special_atomic/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_atomic/1/1__1'(A,B).
|
|
'known/1_1_$special_atomic/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(A),
|
|
'detach_known/1_1_$special_atomic/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_atomic/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8192=:=8192,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H),
|
|
J=mutable(active),
|
|
nonvar(H),
|
|
H=atomic(I),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(B),
|
|
'detach_known/1_1_$special_atomic/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_atomic/1/1__1'(A,B) :-
|
|
'chr novel_production'(B,237),
|
|
!,
|
|
'chr extend_history'(B,237),
|
|
activate_constraint(D,C,B,E),
|
|
( D==yes ->
|
|
'$insert_in_store_known/1_1_$special_atomic/1/1'(B),
|
|
'attach_known/1_1_$special_atomic/1/1'(C,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1'(A),
|
|
( B=suspension(_,F,_,G,_,_,_),
|
|
F=mutable(active),
|
|
G=mutable(E) ->
|
|
'chr update_mutable'(inactive,F),
|
|
'known/1_1_$special_atomic/1/1__2'(A,B)
|
|
;
|
|
true
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_atomic/1/1__2__0'(E,A,B).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=atomic(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_atomic/1/1'(B),
|
|
'attach_known/1_1_$special_atomic/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_atomic/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_atomic/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_atomic/1/1__3__0'(E,A,B).
|
|
'known/1_1_$special_atomic/1/1__3__0'([],A,B) :-
|
|
'known/1_1_$special_atomic/1/1__4'(A,B).
|
|
'known/1_1_$special_atomic/1/1__3__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=atomic(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_atomic/1/1'(B),
|
|
'attach_known/1_1_$special_atomic/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_atomic/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_atomic/1/1__3__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_atomic/1/1__3'(A,B) :-
|
|
'known/1_1_$special_atomic/1/1__4'(A,B).
|
|
'known/1_1_$special_atomic/1/1__4'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_atomic/1/1'(A),
|
|
'attach_known/1_1_$special_atomic/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\128=:=128,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(B),
|
|
'detach_known/1_1_$special_compound/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_compound/1/1__0'(A,B),B,'known/1_1_$special_compound/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_compound/1/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$special_compound/1/1__0__0'([],A,B) :-
|
|
'known/1_1_$special_compound/1/1__1'(A,B).
|
|
'known/1_1_$special_compound/1/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(C),
|
|
'detach_known/1_1_$special_compound/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_compound/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_compound/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_compound/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_compound/1/1__0'(A,B),B,'known/1_1_$special_compound/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_compound/1/1__1'(A,B).
|
|
'known/1_1_$special_compound/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(A),
|
|
'detach_known/1_1_$special_compound/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_compound/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8192=:=8192,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H),
|
|
J=mutable(active),
|
|
nonvar(H),
|
|
H=compound(I),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(B),
|
|
'detach_known/1_1_$special_compound/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_compound/1/1__1'(A,B) :-
|
|
'chr novel_production'(B,236),
|
|
!,
|
|
'chr extend_history'(B,236),
|
|
activate_constraint(D,C,B,E),
|
|
( D==yes ->
|
|
'$insert_in_store_known/1_1_$special_compound/1/1'(B),
|
|
'attach_known/1_1_$special_compound/1/1'(C,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1'(A),
|
|
( B=suspension(_,F,_,G,_,_,_),
|
|
F=mutable(active),
|
|
G=mutable(E) ->
|
|
'chr update_mutable'(inactive,F),
|
|
'known/1_1_$special_compound/1/1__2'(A,B)
|
|
;
|
|
true
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_compound/1/1__2__0'(E,A,B).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=compound(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_compound/1/1'(B),
|
|
'attach_known/1_1_$special_compound/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_compound/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_compound/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_compound/1/1__3__0'(E,A,B).
|
|
'known/1_1_$special_compound/1/1__3__0'([],A,B) :-
|
|
'known/1_1_$special_compound/1/1__4'(A,B).
|
|
'known/1_1_$special_compound/1/1__3__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=compound(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_compound/1/1'(B),
|
|
'attach_known/1_1_$special_compound/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_compound/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_compound/1/1__3__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_compound/1/1__3'(A,B) :-
|
|
'known/1_1_$special_compound/1/1__4'(A,B).
|
|
'known/1_1_$special_compound/1/1__4'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_compound/1/1'(A),
|
|
'attach_known/1_1_$special_compound/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\256=:=256,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(B),
|
|
'detach_known/1_1_$special_ground/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_ground/1/1__0'(A,B),B,'known/1_1_$special_ground/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_ground/1/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$special_ground/1/1__0__0'([],A,B) :-
|
|
'known/1_1_$special_ground/1/1__1'(A,B).
|
|
'known/1_1_$special_ground/1/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(C),
|
|
'detach_known/1_1_$special_ground/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_ground/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_ground/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_ground/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_ground/1/1__0'(A,B),B,'known/1_1_$special_ground/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_ground/1/1__1'(A,B).
|
|
'known/1_1_$special_ground/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(A),
|
|
'detach_known/1_1_$special_ground/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_ground/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8192=:=8192,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H),
|
|
J=mutable(active),
|
|
nonvar(H),
|
|
H=ground(I),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(B),
|
|
'detach_known/1_1_$special_ground/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_ground/1/1__1'(A,B) :-
|
|
'chr novel_production'(B,235),
|
|
!,
|
|
'chr extend_history'(B,235),
|
|
activate_constraint(D,C,B,E),
|
|
( D==yes ->
|
|
'$insert_in_store_known/1_1_$special_ground/1/1'(B),
|
|
'attach_known/1_1_$special_ground/1/1'(C,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1'(A),
|
|
( B=suspension(_,F,_,G,_,_,_),
|
|
F=mutable(active),
|
|
G=mutable(E) ->
|
|
'chr update_mutable'(inactive,F),
|
|
'known/1_1_$special_ground/1/1__2'(A,B)
|
|
;
|
|
true
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_ground/1/1__2__0'(E,A,B).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=ground(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_ground/1/1'(B),
|
|
'attach_known/1_1_$special_ground/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_ground/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_ground/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_ground/1/1__3__0'(E,A,B).
|
|
'known/1_1_$special_ground/1/1__3__0'([],A,B) :-
|
|
'known/1_1_$special_ground/1/1__4'(A,B).
|
|
'known/1_1_$special_ground/1/1__3__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=ground(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_ground/1/1'(B),
|
|
'attach_known/1_1_$special_ground/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_ground/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_ground/1/1__3__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_ground/1/1__3'(A,B) :-
|
|
'known/1_1_$special_ground/1/1__4'(A,B).
|
|
'known/1_1_$special_ground/1/1__4'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_ground/1/1'(A),
|
|
'attach_known/1_1_$special_ground/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\512=:=512,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(B),
|
|
'detach_known/1_1_$special_integer/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_integer/1/1__0'(A,B),B,'known/1_1_$special_integer/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_integer/1/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$special_integer/1/1__0__0'([],A,B) :-
|
|
'known/1_1_$special_integer/1/1__1'(A,B).
|
|
'known/1_1_$special_integer/1/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(C),
|
|
'detach_known/1_1_$special_integer/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_integer/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_integer/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_integer/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_integer/1/1__0'(A,B),B,'known/1_1_$special_integer/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_integer/1/1__1'(A,B).
|
|
'known/1_1_$special_integer/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(A),
|
|
'detach_known/1_1_$special_integer/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_integer/1/1__1'(A,B) :-
|
|
nonvar(A),
|
|
\+integer(A),
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,C,D),
|
|
( D==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(B),
|
|
'detach_known/1_1_$special_integer/1/1'(C,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_integer/1/1__1'(A,B) :-
|
|
'chr novel_production'(B,199),
|
|
!,
|
|
'chr extend_history'(B,199),
|
|
activate_constraint(D,C,B,E),
|
|
( D==yes ->
|
|
'$insert_in_store_known/1_1_$special_integer/1/1'(B),
|
|
'attach_known/1_1_$special_integer/1/1'(C,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_number/1'(A),
|
|
( B=suspension(_,F,_,G,_,_,_),
|
|
F=mutable(active),
|
|
G=mutable(E) ->
|
|
'chr update_mutable'(inactive,F),
|
|
'known/1_1_$special_integer/1/1__2'(A,B)
|
|
;
|
|
true
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(H,_,_,F,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
H/\8192=:=8192,
|
|
'chr sbag_member'(C,G),
|
|
C=suspension(_,K,_,_,_,_,I),
|
|
K=mutable(active),
|
|
nonvar(I),
|
|
I=integer(J),
|
|
J==A,
|
|
!,
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(L,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(B),
|
|
'detach_known/1_1_$special_integer/1/1'(N,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
H/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_integer/1/1__2__0'(F,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=integer(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_integer/1/1'(B),
|
|
'attach_known/1_1_$special_integer/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_integer/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_integer/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_integer/1/1__3__0'(E,A,B).
|
|
'known/1_1_$special_integer/1/1__3__0'([],A,B) :-
|
|
'known/1_1_$special_integer/1/1__4'(A,B).
|
|
'known/1_1_$special_integer/1/1__3__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=integer(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_integer/1/1'(B),
|
|
'attach_known/1_1_$special_integer/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_integer/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_integer/1/1__3__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_integer/1/1__3'(A,B) :-
|
|
'known/1_1_$special_integer/1/1__4'(A,B).
|
|
'known/1_1_$special_integer/1/1__4'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_integer/1/1'(A),
|
|
'attach_known/1_1_$special_integer/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\1024=:=1024,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(B),
|
|
'detach_known/1_1_$special_float/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_float/1/1__0'(A,B),B,'known/1_1_$special_float/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_float/1/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$special_float/1/1__0__0'([],A,B) :-
|
|
'known/1_1_$special_float/1/1__1'(A,B).
|
|
'known/1_1_$special_float/1/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(C),
|
|
'detach_known/1_1_$special_float/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_float/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_float/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_float/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_float/1/1__0'(A,B),B,'known/1_1_$special_float/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_float/1/1__1'(A,B).
|
|
'known/1_1_$special_float/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(A),
|
|
'detach_known/1_1_$special_float/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_float/1/1__1'(A,B) :-
|
|
nonvar(A),
|
|
\+float(A),
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,C,D),
|
|
( D==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(B),
|
|
'detach_known/1_1_$special_float/1/1'(C,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_float/1/1__1'(A,B) :-
|
|
'chr novel_production'(B,200),
|
|
!,
|
|
'chr extend_history'(B,200),
|
|
activate_constraint(D,C,B,E),
|
|
( D==yes ->
|
|
'$insert_in_store_known/1_1_$special_float/1/1'(B),
|
|
'attach_known/1_1_$special_float/1/1'(C,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_number/1'(A),
|
|
( B=suspension(_,F,_,G,_,_,_),
|
|
F=mutable(active),
|
|
G=mutable(E) ->
|
|
'chr update_mutable'(inactive,F),
|
|
'known/1_1_$special_float/1/1__2'(A,B)
|
|
;
|
|
true
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(H,_,_,F,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
H/\8192=:=8192,
|
|
'chr sbag_member'(C,G),
|
|
C=suspension(_,K,_,_,_,_,I),
|
|
K=mutable(active),
|
|
nonvar(I),
|
|
I=float(J),
|
|
J==A,
|
|
!,
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(L,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(B),
|
|
'detach_known/1_1_$special_float/1/1'(N,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
H/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_float/1/1__2__0'(F,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=float(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_float/1/1'(B),
|
|
'attach_known/1_1_$special_float/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_float/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_float/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_float/1/1__3__0'(E,A,B).
|
|
'known/1_1_$special_float/1/1__3__0'([],A,B) :-
|
|
'known/1_1_$special_float/1/1__4'(A,B).
|
|
'known/1_1_$special_float/1/1__3__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=float(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_float/1/1'(B),
|
|
'attach_known/1_1_$special_float/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_float/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_float/1/1__3__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_float/1/1__3'(A,B) :-
|
|
'known/1_1_$special_float/1/1__4'(A,B).
|
|
'known/1_1_$special_float/1/1__4'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_float/1/1'(A),
|
|
'attach_known/1_1_$special_float/1/1'(B,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,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\2048=:=2048,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(B),
|
|
'detach_known/1_1_$special_number/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_number/1/1__0'(A,B),B,'known/1_1_$special_number/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_number/1/1__0__0'(F,A,B)
|
|
).
|
|
'known/1_1_$special_number/1/1__0__0'([],A,B) :-
|
|
'known/1_1_$special_number/1/1__1'(A,B).
|
|
'known/1_1_$special_number/1/1__0__0'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(C),
|
|
'detach_known/1_1_$special_number/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_number/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_number/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_number/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_number/1/1__0'(A,B),B,'known/1_1_$special_number/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_number/1/1__1'(A,B).
|
|
'known/1_1_$special_number/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(A),
|
|
'detach_known/1_1_$special_number/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_number/1/1__1'(A,B) :-
|
|
nonvar(A),
|
|
\+number(A),
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,C,D),
|
|
( D==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(B),
|
|
'detach_known/1_1_$special_number/1/1'(C,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_number/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8192=:=8192,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H),
|
|
J=mutable(active),
|
|
nonvar(H),
|
|
H=number(I),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(B),
|
|
'detach_known/1_1_$special_number/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_number/1/1__1'(A,B) :-
|
|
'chr novel_production'(B,238),
|
|
!,
|
|
'chr extend_history'(B,238),
|
|
activate_constraint(D,C,B,E),
|
|
( D==yes ->
|
|
'$insert_in_store_known/1_1_$special_number/1/1'(B),
|
|
'attach_known/1_1_$special_number/1/1'(C,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_nonvar/1'(A),
|
|
( B=suspension(_,F,_,G,_,_,_),
|
|
F=mutable(active),
|
|
G=mutable(E) ->
|
|
'chr update_mutable'(inactive,F),
|
|
'known/1_1_$special_number/1/1__2'(A,B)
|
|
;
|
|
true
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_number/1/1__2__0'(E,A,B).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=number(H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_number/1/1'(B),
|
|
'attach_known/1_1_$special_number/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_number/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_number/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_number/1/1__3__0'(E,A,B).
|
|
'known/1_1_$special_number/1/1__3__0'([],A,B) :-
|
|
'known/1_1_$special_number/1/1__4'(A,B).
|
|
'known/1_1_$special_number/1/1__3__0'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=number(I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_number/1/1'(B),
|
|
'attach_known/1_1_$special_number/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_number/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_number/1/1__3__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_number/1/1__3'(A,B) :-
|
|
'known/1_1_$special_number/1/1__4'(A,B).
|
|
'known/1_1_$special_number/1/1__4'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_number/1/1'(A),
|
|
'attach_known/1_1_$special_number/1/1'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\4096=:=4096,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'detach_known/1_1_$special_=\\=/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=\\=/2/2__0'(A,B,C),C,'known/1_1_$special_=\\=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(D),
|
|
'detach_known/1_1_$special_=\\=/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_=\\=/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=\\=/2/2__0'(A,B,C),C,'known/1_1_$special_=\\=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2/2__1'(A,B,C).
|
|
'known/1_1_$special_=\\=/2/2__1'(_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(A),
|
|
'detach_known/1_1_$special_=\\=/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=\\=/2/2__1'(A,B,C) :-
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4096=:=4096,
|
|
!,
|
|
'known/1_1_$special_=\\=/2/2__1__0'(F,A,B,C).
|
|
'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'([F|L],A,B,C) :-
|
|
( F=suspension(_,G,_,_,_,_,D,E),
|
|
G=mutable(active),
|
|
D==B,
|
|
'chr via_2'(A,B,H),
|
|
get_attr(H,guard_entailment,I),
|
|
I=v(K,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,J,_),
|
|
K/\16777216=:=16777216 ->
|
|
'known/1_1_$special_=\\=/2/2__1__1'(J,E,F,L,A,B,C)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__1__0'(L,A,B,C)
|
|
).
|
|
'known/1_1_$special_=\\=/2/2__1__1'([],_,_,D,A,B,C) :-
|
|
'known/1_1_$special_=\\=/2/2__1__0'(D,A,B,C).
|
|
'known/1_1_$special_=\\=/2/2__1__1'([I|O],E,A,F,B,C,D) :-
|
|
( I=suspension(_,J,_,_,_,_,G,H),
|
|
J=mutable(active),
|
|
G==B,
|
|
H==C,
|
|
'chr via_2'(C,E,K),
|
|
get_attr(K,guard_entailment,L),
|
|
L=v(N,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,M,_),
|
|
N/\16777216=:=16777216 ->
|
|
'known/1_1_$special_=\\=/2/2__1__2'(M,I,O,E,A,F,B,C,D)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__1__1'(O,E,A,F,B,C,D)
|
|
).
|
|
'known/1_1_$special_=\\=/2/2__1__2'([],_,G,D,E,F,A,B,C) :-
|
|
'known/1_1_$special_=\\=/2/2__1__1'(G,D,E,F,A,B,C).
|
|
'known/1_1_$special_=\\=/2/2__1__2'([L|M],A,H,F,B,G,C,D,E) :-
|
|
( L=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
L\==A,
|
|
I==D,
|
|
J==F,
|
|
S=t(188,B,E,A,L),
|
|
'chr novel_production'(B,S),
|
|
'chr novel_production'(E,S),
|
|
'chr novel_production'(A,S),
|
|
'chr novel_production'(L,S) ->
|
|
'chr extend_history'(E,S),
|
|
activate_constraint(O,N,E,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=\\=/2/2'(E),
|
|
'attach_known/1_1_$special_=\\=/2/2'(N,E)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2'(C,F),
|
|
( E=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=\\=/2/2__1__2'(M,A,H,F,B,G,C,D,E)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__1__2'(M,A,H,F,B,G,C,D,E)
|
|
).
|
|
'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,C) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4096=:=4096,
|
|
!,
|
|
'known/1_1_$special_=\\=/2/2__2__0'(F,A,B,C).
|
|
'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'([F|L],A,B,C) :-
|
|
( F=suspension(_,G,_,_,_,_,D,E),
|
|
G=mutable(active),
|
|
E==A,
|
|
'chr via_2'(D,A,H),
|
|
get_attr(H,guard_entailment,I),
|
|
I=v(K,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,J,_),
|
|
K/\16777216=:=16777216 ->
|
|
'known/1_1_$special_=\\=/2/2__2__1'(J,D,F,L,A,B,C)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__2__0'(L,A,B,C)
|
|
).
|
|
'known/1_1_$special_=\\=/2/2__2__1'([],_,_,D,A,B,C) :-
|
|
'known/1_1_$special_=\\=/2/2__2__0'(D,A,B,C).
|
|
'known/1_1_$special_=\\=/2/2__2__1'([I|O],E,A,F,B,C,D) :-
|
|
( I=suspension(_,J,_,_,_,_,G,H),
|
|
J=mutable(active),
|
|
G==E,
|
|
H==B,
|
|
'chr via_2'(B,C,K),
|
|
get_attr(K,guard_entailment,L),
|
|
L=v(N,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,M,_),
|
|
N/\16777216=:=16777216 ->
|
|
'known/1_1_$special_=\\=/2/2__2__2'(M,I,O,E,A,F,B,C,D)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__2__1'(O,E,A,F,B,C,D)
|
|
).
|
|
'known/1_1_$special_=\\=/2/2__2__2'([],_,G,D,E,F,A,B,C) :-
|
|
'known/1_1_$special_=\\=/2/2__2__1'(G,D,E,F,A,B,C).
|
|
'known/1_1_$special_=\\=/2/2__2__2'([L|M],A,H,F,B,G,C,D,E) :-
|
|
( L=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
L\==A,
|
|
I==C,
|
|
J==D,
|
|
S=t(188,B,A,L,E),
|
|
'chr novel_production'(B,S),
|
|
'chr novel_production'(A,S),
|
|
'chr novel_production'(L,S),
|
|
'chr novel_production'(E,S) ->
|
|
'chr extend_history'(E,S),
|
|
activate_constraint(O,N,E,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=\\=/2/2'(E),
|
|
'attach_known/1_1_$special_=\\=/2/2'(N,E)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2'(F,D),
|
|
( E=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=\\=/2/2__2__2'(M,A,H,F,B,G,C,D,E)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__2__2'(M,A,H,F,B,G,C,D,E)
|
|
).
|
|
'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,C) :-
|
|
number(B),
|
|
number(A),
|
|
A=:=B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'detach_known/1_1_$special_=\\=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_=\\=/2/2__3'(A,B,C) :-
|
|
B==A,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'detach_known/1_1_$special_=\\=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_=\\=/2/2__3'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G),
|
|
H/\33554432=:=33554432,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(D),
|
|
'detach_known/1_1_$special_=:=/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'detach_known/1_1_$special_=\\=/2/2'(N,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_=\\=/2/2__3'(A,B,C) :-
|
|
'chr novel_production'(C,195),
|
|
!,
|
|
'chr extend_history'(C,195),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'attach_known/1_1_$special_=\\=/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2'(B,A),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_=\\=/2/2__4'(A,B,C)
|
|
;
|
|
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'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(I,_,_,G,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(D,H),
|
|
D=suspension(_,M,_,_,_,_,J),
|
|
M=mutable(active),
|
|
nonvar(J),
|
|
J=(K=\=L),
|
|
K==A,
|
|
L==B,
|
|
!,
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(N,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'detach_known/1_1_$special_=\\=/2/2'(P,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=\\=/2/2__4__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I=\=J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'attach_known/1_1_$special_=\\=/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=\\=/2/2__4__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__4__0'(E,A,B,C)
|
|
).
|
|
'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,B,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=\\=/2/2__5__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J=\=K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_=\\=/2/2'(C),
|
|
'attach_known/1_1_$special_=\\=/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_=\\=/2/2__5__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=\\=/2/2__5__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_=\\=/2/2'(A),
|
|
'attach_known/1_1_$special_=\\=/2/2'(B,A)
|
|
;
|
|
true
|
|
).
|
|
'known/1_1_$special_\\+/1'(A) :-
|
|
'known/1_1_$special_\\+/1/1__0'(A,_).
|
|
'known/1_1_$special_\\+/1/1__0'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8192=:=8192,
|
|
(
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==A,
|
|
!,
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(J,B)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_\\+/1/1__0'(A,B),B,'known/1_1_$special_\\+/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\+/1/1__0__0'(F,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,F,_,_,_,_,E),
|
|
F=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(G,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\+/1/1__0__0'(D,A,B)
|
|
;
|
|
'known/1_1_$special_\\+/1/1__0__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_\\+/1/1__0'(A,B) :-
|
|
( var(B) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_\\+/1/1__0'(A,B),B,'known/1_1_$special_\\+/1'(A),[A])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\+/1/1__1'(A,B).
|
|
'known/1_1_$special_\\+/1/1__1'(_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(A),
|
|
'detach_known/1_1_$special_\\+/1/1'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_\\+/1/1__1'(A,B) :-
|
|
nonvar(A),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
A=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(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,F,G),
|
|
( G==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(F,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
A=(H;I),
|
|
'chr via_2'(H,I,K),
|
|
get_attr(K,guard_entailment,L),
|
|
L=v(N,_,_,M,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
N/\4=:=4,
|
|
'chr sbag_member'(J,M),
|
|
J=suspension(_,Q,_,_,_,_,O,P),
|
|
Q=mutable(active),
|
|
O==H,
|
|
P==I,
|
|
!,
|
|
remove_constraint_internal(J,R,S),
|
|
( S==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(J),
|
|
'detach_known/1_1_$special_;/2/2'(R,J)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,T,U),
|
|
( U==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(T,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=nonvar(V),
|
|
'chr via_1'(V,X),
|
|
get_attr(X,guard_entailment,Y),
|
|
Y=v(A1,_,_,_,Z,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
A1/\8=:=8,
|
|
'chr sbag_member'(W,Z),
|
|
W=suspension(_,C1,_,_,_,_,B1),
|
|
C1=mutable(active),
|
|
B1==V,
|
|
!,
|
|
remove_constraint_internal(W,D1,E1),
|
|
( E1==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(W),
|
|
'detach_known/1_1_$special_nonvar/1/1'(D1,W)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,F1,G1),
|
|
( G1==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(F1,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=var(H1),
|
|
'chr via_1'(H1,J1),
|
|
get_attr(J1,guard_entailment,K1),
|
|
K1=v(M1,_,_,_,_,L1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
M1/\16=:=16,
|
|
'chr sbag_member'(I1,L1),
|
|
I1=suspension(_,O1,_,_,_,_,N1),
|
|
O1=mutable(active),
|
|
N1==H1,
|
|
!,
|
|
remove_constraint_internal(I1,P1,Q1),
|
|
( Q1==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(I1),
|
|
'detach_known/1_1_$special_var/1/1'(P1,I1)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,R1,S1),
|
|
( S1==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(R1,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=atom(T1),
|
|
'chr via_1'(T1,V1),
|
|
get_attr(V1,guard_entailment,W1),
|
|
W1=v(Y1,_,_,_,_,_,X1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
Y1/\32=:=32,
|
|
'chr sbag_member'(U1,X1),
|
|
U1=suspension(_,A2,_,_,_,_,Z1),
|
|
A2=mutable(active),
|
|
Z1==T1,
|
|
!,
|
|
remove_constraint_internal(U1,B2,C2),
|
|
( C2==yes ->
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(U1),
|
|
'detach_known/1_1_$special_atom/1/1'(B2,U1)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,D2,E2),
|
|
( E2==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(D2,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=atomic(F2),
|
|
'chr via_1'(F2,H2),
|
|
get_attr(H2,guard_entailment,I2),
|
|
I2=v(K2,_,_,_,_,_,_,J2,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
K2/\64=:=64,
|
|
'chr sbag_member'(G2,J2),
|
|
G2=suspension(_,M2,_,_,_,_,L2),
|
|
M2=mutable(active),
|
|
L2==F2,
|
|
!,
|
|
remove_constraint_internal(G2,N2,O2),
|
|
( O2==yes ->
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(G2),
|
|
'detach_known/1_1_$special_atomic/1/1'(N2,G2)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,P2,Q2),
|
|
( Q2==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(P2,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=compound(R2),
|
|
'chr via_1'(R2,T2),
|
|
get_attr(T2,guard_entailment,U2),
|
|
U2=v(W2,_,_,_,_,_,_,_,V2,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
W2/\128=:=128,
|
|
'chr sbag_member'(S2,V2),
|
|
S2=suspension(_,Y2,_,_,_,_,X2),
|
|
Y2=mutable(active),
|
|
X2==R2,
|
|
!,
|
|
remove_constraint_internal(S2,Z2,A3),
|
|
( A3==yes ->
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(S2),
|
|
'detach_known/1_1_$special_compound/1/1'(Z2,S2)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,B3,C3),
|
|
( C3==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(B3,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=ground(D3),
|
|
'chr via_1'(D3,F3),
|
|
get_attr(F3,guard_entailment,G3),
|
|
G3=v(I3,_,_,_,_,_,_,_,_,H3,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
I3/\256=:=256,
|
|
'chr sbag_member'(E3,H3),
|
|
E3=suspension(_,K3,_,_,_,_,J3),
|
|
K3=mutable(active),
|
|
J3==D3,
|
|
!,
|
|
remove_constraint_internal(E3,L3,M3),
|
|
( M3==yes ->
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(E3),
|
|
'detach_known/1_1_$special_ground/1/1'(L3,E3)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,N3,O3),
|
|
( O3==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(N3,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=integer(P3),
|
|
'chr via_1'(P3,R3),
|
|
get_attr(R3,guard_entailment,S3),
|
|
S3=v(U3,_,_,_,_,_,_,_,_,_,T3,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
U3/\512=:=512,
|
|
'chr sbag_member'(Q3,T3),
|
|
Q3=suspension(_,W3,_,_,_,_,V3),
|
|
W3=mutable(active),
|
|
V3==P3,
|
|
!,
|
|
remove_constraint_internal(Q3,X3,Y3),
|
|
( Y3==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(Q3),
|
|
'detach_known/1_1_$special_integer/1/1'(X3,Q3)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,Z3,A4),
|
|
( A4==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(Z3,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=float(B4),
|
|
'chr via_1'(B4,D4),
|
|
get_attr(D4,guard_entailment,E4),
|
|
E4=v(G4,_,_,_,_,_,_,_,_,_,_,F4,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G4/\1024=:=1024,
|
|
'chr sbag_member'(C4,F4),
|
|
C4=suspension(_,I4,_,_,_,_,H4),
|
|
I4=mutable(active),
|
|
H4==B4,
|
|
!,
|
|
remove_constraint_internal(C4,J4,K4),
|
|
( K4==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(C4),
|
|
'detach_known/1_1_$special_float/1/1'(J4,C4)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,L4,M4),
|
|
( M4==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(L4,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=number(N4),
|
|
'chr via_1'(N4,P4),
|
|
get_attr(P4,guard_entailment,Q4),
|
|
Q4=v(S4,_,_,_,_,_,_,_,_,_,_,_,R4,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
S4/\2048=:=2048,
|
|
'chr sbag_member'(O4,R4),
|
|
O4=suspension(_,U4,_,_,_,_,T4),
|
|
U4=mutable(active),
|
|
T4==N4,
|
|
!,
|
|
remove_constraint_internal(O4,V4,W4),
|
|
( W4==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(O4),
|
|
'detach_known/1_1_$special_number/1/1'(V4,O4)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,X4,Y4),
|
|
( Y4==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(X4,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(Z4=\=A5),
|
|
'chr via_2'(Z4,A5,C5),
|
|
get_attr(C5,guard_entailment,D5),
|
|
D5=v(F5,_,_,_,_,_,_,_,_,_,_,_,_,E5,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F5/\4096=:=4096,
|
|
'chr sbag_member'(B5,E5),
|
|
B5=suspension(_,I5,_,_,_,_,G5,H5),
|
|
I5=mutable(active),
|
|
G5==Z4,
|
|
H5==A5,
|
|
!,
|
|
remove_constraint_internal(B5,J5,K5),
|
|
( K5==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(B5),
|
|
'detach_known/1_1_$special_=\\=/2/2'(J5,B5)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,L5,M5),
|
|
( M5==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(L5,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
).
|
|
'known/1_1_$special_\\+/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\8192=:=8192,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,H),
|
|
J=mutable(active),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(C),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_\\+/1/1__1'(A,B) :-
|
|
nonvar(A),
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
(
|
|
A=(\+C),
|
|
'chr via_1'(C,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\8192=:=8192,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,J,_,_,_,_,I),
|
|
J=mutable(active),
|
|
I==C,
|
|
!,
|
|
remove_constraint_internal(D,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(K,D)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
A=functor(O,P,Q),
|
|
'chr via'([O,P,Q],S),
|
|
get_attr(S,guard_entailment,T),
|
|
T=v(V,_,_,_,_,_,_,_,_,_,_,_,_,_,_,U,_,_,_,_,_,_,_,_,_,_,_),
|
|
V/\16384=:=16384,
|
|
'chr sbag_member'(R,U),
|
|
R=suspension(_,Z,_,_,_,_,W,X,Y),
|
|
Z=mutable(active),
|
|
W==O,
|
|
X==P,
|
|
Y==Q,
|
|
!,
|
|
remove_constraint_internal(R,A1,B1),
|
|
( B1==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(R),
|
|
'detach_known/1_1_$special_functor/3/3'(A1,R)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,C1,D1),
|
|
( D1==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(C1,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(E1\=F1),
|
|
'chr via_2'(E1,F1,H1),
|
|
get_attr(H1,guard_entailment,I1),
|
|
I1=v(K1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,J1,_,_,_,_,_,_,_,_,_,_),
|
|
K1/\32768=:=32768,
|
|
'chr sbag_member'(G1,J1),
|
|
G1=suspension(_,N1,_,_,_,_,L1,M1),
|
|
N1=mutable(active),
|
|
L1==E1,
|
|
M1==F1,
|
|
!,
|
|
remove_constraint_internal(G1,O1,P1),
|
|
( P1==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(G1),
|
|
'detach_known/1_1_$special_\\=/2/2'(O1,G1)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,Q1,R1),
|
|
( R1==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(Q1,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(S1=T1),
|
|
'chr via_2'(S1,T1,V1),
|
|
get_attr(V1,guard_entailment,W1),
|
|
W1=v(Y1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,X1,_,_,_,_,_,_,_,_,_),
|
|
Y1/\65536=:=65536,
|
|
'chr sbag_member'(U1,X1),
|
|
U1=suspension(_,B2,_,_,_,_,Z1,A2),
|
|
B2=mutable(active),
|
|
Z1==S1,
|
|
A2==T1,
|
|
!,
|
|
remove_constraint_internal(U1,C2,D2),
|
|
( D2==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(U1),
|
|
'detach_known/1_1_$special_=/2/2'(C2,U1)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,E2,F2),
|
|
( F2==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(E2,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(G2,H2),
|
|
'chr via_2'(G2,H2,J2),
|
|
get_attr(J2,guard_entailment,K2),
|
|
K2=v(M2,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,L2,_,_,_,_,_,_,_,_),
|
|
M2/\131072=:=131072,
|
|
'chr sbag_member'(I2,L2),
|
|
I2=suspension(_,P2,_,_,_,_,N2,O2),
|
|
P2=mutable(active),
|
|
N2==G2,
|
|
O2==H2,
|
|
!,
|
|
remove_constraint_internal(I2,Q2,R2),
|
|
( R2==yes ->
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(I2),
|
|
'detach_known/1_1_$special_,/2/2'(Q2,I2)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,S2,T2),
|
|
( T2==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(S2,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(U2\==V2),
|
|
'chr via_2'(U2,V2,X2),
|
|
get_attr(X2,guard_entailment,Y2),
|
|
Y2=v(A3,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,Z2,_,_,_,_,_,_,_),
|
|
A3/\262144=:=262144,
|
|
'chr sbag_member'(W2,Z2),
|
|
W2=suspension(_,D3,_,_,_,_,B3,C3),
|
|
D3=mutable(active),
|
|
B3==U2,
|
|
C3==V2,
|
|
!,
|
|
remove_constraint_internal(W2,E3,F3),
|
|
( F3==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(W2),
|
|
'detach_known/1_1_$special_\\==/2/2'(E3,W2)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,G3,H3),
|
|
( H3==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(G3,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(I3==J3),
|
|
'chr via_2'(I3,J3,L3),
|
|
get_attr(L3,guard_entailment,M3),
|
|
M3=v(O3,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,N3,_,_,_,_,_,_),
|
|
O3/\524288=:=524288,
|
|
'chr sbag_member'(K3,N3),
|
|
K3=suspension(_,R3,_,_,_,_,P3,Q3),
|
|
R3=mutable(active),
|
|
P3==I3,
|
|
Q3==J3,
|
|
!,
|
|
remove_constraint_internal(K3,S3,T3),
|
|
( T3==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(K3),
|
|
'detach_known/1_1_$special_==/2/2'(S3,K3)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,U3,V3),
|
|
( V3==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(U3,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(W3 is X3),
|
|
'chr via_2'(W3,X3,Z3),
|
|
get_attr(Z3,guard_entailment,A4),
|
|
A4=v(C4,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,B4,_,_,_,_,_),
|
|
C4/\1048576=:=1048576,
|
|
'chr sbag_member'(Y3,B4),
|
|
Y3=suspension(_,F4,_,_,_,_,D4,E4),
|
|
F4=mutable(active),
|
|
D4==W3,
|
|
E4==X3,
|
|
!,
|
|
remove_constraint_internal(Y3,G4,H4),
|
|
( H4==yes ->
|
|
'$delete_from_store_known/1_1_$special_is/2/2'(Y3),
|
|
'detach_known/1_1_$special_is/2/2'(G4,Y3)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,I4,J4),
|
|
( J4==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(I4,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(K4<L4),
|
|
'chr via_2'(K4,L4,N4),
|
|
get_attr(N4,guard_entailment,O4),
|
|
O4=v(Q4,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,P4,_,_,_,_),
|
|
Q4/\2097152=:=2097152,
|
|
'chr sbag_member'(M4,P4),
|
|
M4=suspension(_,T4,_,_,_,_,R4,S4),
|
|
T4=mutable(active),
|
|
R4==K4,
|
|
S4==L4,
|
|
!,
|
|
remove_constraint_internal(M4,U4,V4),
|
|
( V4==yes ->
|
|
'$delete_from_store_known/1_1_$special_</2/2'(M4),
|
|
'detach_known/1_1_$special_</2/2'(U4,M4)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,W4,X4),
|
|
( X4==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(W4,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(Y4>=Z4),
|
|
'chr via_2'(Y4,Z4,B5),
|
|
get_attr(B5,guard_entailment,C5),
|
|
C5=v(E5,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D5,_,_,_),
|
|
E5/\4194304=:=4194304,
|
|
'chr sbag_member'(A5,D5),
|
|
A5=suspension(_,H5,_,_,_,_,F5,G5),
|
|
H5=mutable(active),
|
|
F5==Y4,
|
|
G5==Z4,
|
|
!,
|
|
remove_constraint_internal(A5,I5,J5),
|
|
( J5==yes ->
|
|
'$delete_from_store_known/1_1_$special_>=/2/2'(A5),
|
|
'detach_known/1_1_$special_>=/2/2'(I5,A5)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,K5,L5),
|
|
( L5==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(K5,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(M5>N5),
|
|
'chr via_2'(M5,N5,P5),
|
|
get_attr(P5,guard_entailment,Q5),
|
|
Q5=v(S5,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,R5,_,_),
|
|
S5/\8388608=:=8388608,
|
|
'chr sbag_member'(O5,R5),
|
|
O5=suspension(_,V5,_,_,_,_,T5,U5),
|
|
V5=mutable(active),
|
|
T5==M5,
|
|
U5==N5,
|
|
!,
|
|
remove_constraint_internal(O5,W5,X5),
|
|
( X5==yes ->
|
|
'$delete_from_store_known/1_1_$special_>/2/2'(O5),
|
|
'detach_known/1_1_$special_>/2/2'(W5,O5)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,Y5,Z5),
|
|
( Z5==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(Y5,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(A6=<B6),
|
|
'chr via_2'(A6,B6,D6),
|
|
get_attr(D6,guard_entailment,E6),
|
|
E6=v(G6,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F6,_),
|
|
G6/\16777216=:=16777216,
|
|
'chr sbag_member'(C6,F6),
|
|
C6=suspension(_,J6,_,_,_,_,H6,I6),
|
|
J6=mutable(active),
|
|
H6==A6,
|
|
I6==B6,
|
|
!,
|
|
remove_constraint_internal(C6,K6,L6),
|
|
( L6==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C6),
|
|
'detach_known/1_1_$special_=</2/2'(K6,C6)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M6,N6),
|
|
( N6==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(M6,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
)
|
|
;
|
|
A=(O6=:=P6),
|
|
'chr via_2'(O6,P6,R6),
|
|
get_attr(R6,guard_entailment,S6),
|
|
S6=v(U6,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,T6),
|
|
U6/\33554432=:=33554432,
|
|
'chr sbag_member'(Q6,T6),
|
|
Q6=suspension(_,X6,_,_,_,_,V6,W6),
|
|
X6=mutable(active),
|
|
V6==O6,
|
|
W6==P6,
|
|
!,
|
|
remove_constraint_internal(Q6,Y6,Z6),
|
|
( Z6==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(Q6),
|
|
'detach_known/1_1_$special_=:=/2/2'(Y6,Q6)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,A7,B7),
|
|
( B7==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(A7,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
).
|
|
'known/1_1_$special_\\+/1/1__1'(A,B) :-
|
|
A==fail,
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',D),
|
|
'chr sbag_member'(C,D),
|
|
C=suspension(_,E,_,_,_,_),
|
|
E=mutable(active),
|
|
!,
|
|
remove_constraint_internal(C,_,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_fail/0/0'(C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,G,H),
|
|
( H==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(G,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_\\+/1/1__1'(A,B) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(H,_,F,G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
H/\2=:=2,
|
|
'chr sbag_member'(C,F),
|
|
C=suspension(_,J,_,_,_,_,I),
|
|
J=mutable(active),
|
|
I==A,
|
|
!,
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$default/1'(C),
|
|
'detach_known/1_1_$default/1'(K,C)
|
|
;
|
|
true
|
|
),
|
|
( var(B) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(B,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(M,B)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
H/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\+/1/1__1__0'(G,A,B)
|
|
).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,I,_,_,_,_,E,F),
|
|
I=mutable(active),
|
|
nonvar(E),
|
|
E=(\+G),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
H==A ->
|
|
remove_constraint_internal(C,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(J,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(M,L,B,N),
|
|
( M==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\+/1/1'(B),
|
|
'attach_known/1_1_$special_\\+/1/1'(L,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,O,_,P,_,_,_),
|
|
O=mutable(active),
|
|
P=mutable(N) ->
|
|
'chr update_mutable'(inactive,O),
|
|
'known/1_1_$special_\\+/1/1__1__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\+/1/1__1__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\+/1/1__2__0'(E,A,B).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,J,_,_,_,_,E,F),
|
|
J=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
I==A ->
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(K,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(N,M,B,O),
|
|
( N==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\+/1/1'(B),
|
|
'attach_known/1_1_$special_\\+/1/1'(M,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,P,_,Q,_,_,_),
|
|
P=mutable(active),
|
|
Q=mutable(O) ->
|
|
'chr update_mutable'(inactive,P),
|
|
'known/1_1_$special_\\+/1/1__2__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\+/1/1__2__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\+/1/1__3__0'(E,A,B).
|
|
'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'([C|D],A,B) :-
|
|
( C=suspension(_,G,_,_,_,_,E,F),
|
|
G=mutable(active),
|
|
E==A ->
|
|
remove_constraint_internal(C,H,I),
|
|
( I==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(H,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(K,J,B,L),
|
|
( K==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\+/1/1'(B),
|
|
'attach_known/1_1_$special_\\+/1/1'(J,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,M,_,N,_,_,_),
|
|
M=mutable(active),
|
|
N=mutable(L) ->
|
|
'chr update_mutable'(inactive,M),
|
|
'known/1_1_$special_\\+/1/1__3__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\+/1/1__3__0'(D,A,B)
|
|
).
|
|
'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,B) :-
|
|
'chr via_1'(A,C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(F,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
F/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\+/1/1__4__0'(E,A,B).
|
|
'known/1_1_$special_\\+/1/1__4__0'([],A,B) :-
|
|
'known/1_1_$special_\\+/1/1__5'(A,B).
|
|
'known/1_1_$special_\\+/1/1__4__0'([C|D],A,B) :-
|
|
( C=suspension(_,H,_,_,_,_,E,F),
|
|
H=mutable(active),
|
|
nonvar(E),
|
|
E=(G,_),
|
|
G==A ->
|
|
remove_constraint_internal(C,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(C),
|
|
'detach_known/1_1_$special_;/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(L,K,B,M),
|
|
( L==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\+/1/1'(B),
|
|
'attach_known/1_1_$special_\\+/1/1'(K,B)
|
|
;
|
|
true
|
|
),
|
|
known(F),
|
|
( B=suspension(_,N,_,O,_,_,_),
|
|
N=mutable(active),
|
|
O=mutable(M) ->
|
|
'chr update_mutable'(inactive,N),
|
|
'known/1_1_$special_\\+/1/1__4__0'(D,A,B)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\+/1/1__4__0'(D,A,B)
|
|
).
|
|
'known/1_1_$special_\\+/1/1__4'(A,B) :-
|
|
'known/1_1_$special_\\+/1/1__5'(A,B).
|
|
'known/1_1_$special_\\+/1/1__5'(_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\+/1/1'(A),
|
|
'attach_known/1_1_$special_\\+/1/1'(B,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,D) :-
|
|
'chr via'([A,B,C],F),
|
|
get_attr(F,guard_entailment,G),
|
|
G=v(I,_,_,_,_,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_),
|
|
I/\16384=:=16384,
|
|
(
|
|
'chr sbag_member'(E,H),
|
|
E=suspension(_,M,_,_,_,_,J,K,L),
|
|
M=mutable(active),
|
|
J==A,
|
|
K==B,
|
|
L==C,
|
|
!,
|
|
( var(D) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(D),
|
|
'detach_known/1_1_$special_functor/3/3'(N,D)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(D) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_functor/3/3__0'(A,B,C,D),D,'known/1_1_$special_functor/3'(A,B,C),[A,B,C])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_functor/3/3__0__0'(H,A,B,C,D)
|
|
).
|
|
'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'([E|F],A,B,C,D) :-
|
|
( E=suspension(_,J,_,_,_,_,G,H,I),
|
|
J=mutable(active),
|
|
G==A,
|
|
H==B,
|
|
I==C ->
|
|
remove_constraint_internal(E,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(E),
|
|
'detach_known/1_1_$special_functor/3/3'(K,E)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_functor/3/3__0__0'(F,A,B,C,D)
|
|
;
|
|
'known/1_1_$special_functor/3/3__0__0'(F,A,B,C,D)
|
|
).
|
|
'known/1_1_$special_functor/3/3__0'(A,B,C,D) :-
|
|
( var(D) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_functor/3/3__0'(A,B,C,D),D,'known/1_1_$special_functor/3'(A,B,C),[A,B,C])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_functor/3/3__1'(A,B,C,D).
|
|
'known/1_1_$special_functor/3/3__1'(_,_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(A),
|
|
'detach_known/1_1_$special_functor/3/3'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_functor/3/3__1'(A,B,C,D) :-
|
|
ground(C),
|
|
ground(B),
|
|
var(A),
|
|
'chr default_store'(F),
|
|
get_attr(F,guard_entailment,G),
|
|
G=v(I,H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
I/\1=:=1,
|
|
'chr sbag_member'(E,H),
|
|
E=suspension(_,K,_,_,_,_,J),
|
|
K=mutable(active),
|
|
!,
|
|
remove_constraint_internal(E,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_variables/1'(E),
|
|
'detach_variables/1'(N,E)
|
|
;
|
|
true
|
|
),
|
|
( var(D) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(D,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(D),
|
|
'detach_known/1_1_$special_functor/3/3'(P,D)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
functor(A,B,C),
|
|
A=..[_|L],
|
|
append(L,J,M),
|
|
variables(M).
|
|
'known/1_1_$special_functor/3/3__1'(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
|
|
;
|
|
remove_constraint_internal(D,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(D),
|
|
'detach_known/1_1_$special_functor/3/3'(E,D)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_functor/3/3__1'(A,B,C,D) :-
|
|
nonvar(C),
|
|
nonvar(B),
|
|
'chr via_1'(A,F),
|
|
get_attr(F,guard_entailment,G),
|
|
G=v(I,_,_,_,_,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_),
|
|
I/\16384=:=16384,
|
|
'chr sbag_member'(E,H),
|
|
E=suspension(_,M,_,_,_,_,J,K,L),
|
|
M=mutable(active),
|
|
J==A,
|
|
nonvar(L),
|
|
nonvar(K),
|
|
!,
|
|
remove_constraint_internal(E,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(E),
|
|
'detach_known/1_1_$special_functor/3/3'(N,E)
|
|
;
|
|
true
|
|
),
|
|
( var(D) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(D,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(D),
|
|
'detach_known/1_1_$special_functor/3/3'(P,D)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_functor/3/3__1'(A,B,C,D) :-
|
|
'chr via'([A,B,C],F),
|
|
get_attr(F,guard_entailment,G),
|
|
G=v(J,_,_,H,_,_,_,_,_,_,_,_,_,_,I,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
J/\8192=:=8192,
|
|
'chr sbag_member'(E,I),
|
|
E=suspension(_,O,_,_,_,_,K),
|
|
O=mutable(active),
|
|
nonvar(K),
|
|
K=functor(L,M,N),
|
|
L==A,
|
|
M==B,
|
|
N==C,
|
|
!,
|
|
remove_constraint_internal(E,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(E),
|
|
'detach_known/1_1_$special_\\+/1/1'(P,E)
|
|
;
|
|
true
|
|
),
|
|
( var(D) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(D,R,S),
|
|
( S==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(D),
|
|
'detach_known/1_1_$special_functor/3/3'(R,D)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
J/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_functor/3/3__1__0'(H,A,B,C,D)
|
|
).
|
|
'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'([E|F],A,B,C,D) :-
|
|
( E=suspension(_,M,_,_,_,_,G,H),
|
|
M=mutable(active),
|
|
nonvar(G),
|
|
G=(\+I),
|
|
nonvar(I),
|
|
I=functor(J,K,L),
|
|
J==A,
|
|
K==B,
|
|
L==C ->
|
|
remove_constraint_internal(E,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(E),
|
|
'detach_known/1_1_$special_;/2/2'(N,E)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(Q,P,D,R),
|
|
( Q==yes ->
|
|
'$insert_in_store_known/1_1_$special_functor/3/3'(D),
|
|
'attach_known/1_1_$special_functor/3/3'(P,D)
|
|
;
|
|
true
|
|
),
|
|
known(H),
|
|
( D=suspension(_,S,_,T,_,_,_,_,_),
|
|
S=mutable(active),
|
|
T=mutable(R) ->
|
|
'chr update_mutable'(inactive,S),
|
|
'known/1_1_$special_functor/3/3__1__0'(F,A,B,C,D)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_functor/3/3__1__0'(F,A,B,C,D)
|
|
).
|
|
'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,B,C,D) :-
|
|
'chr via'([A,B,C],E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_functor/3/3__2__0'(G,A,B,C,D).
|
|
'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'([E|F],A,B,C,D) :-
|
|
( E=suspension(_,N,_,_,_,_,G,H),
|
|
N=mutable(active),
|
|
nonvar(G),
|
|
G=(I,_),
|
|
nonvar(I),
|
|
I=(\+J),
|
|
nonvar(J),
|
|
J=functor(K,L,M),
|
|
K==A,
|
|
L==B,
|
|
M==C ->
|
|
remove_constraint_internal(E,O,P),
|
|
( P==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(E),
|
|
'detach_known/1_1_$special_;/2/2'(O,E)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(R,Q,D,S),
|
|
( R==yes ->
|
|
'$insert_in_store_known/1_1_$special_functor/3/3'(D),
|
|
'attach_known/1_1_$special_functor/3/3'(Q,D)
|
|
;
|
|
true
|
|
),
|
|
known(H),
|
|
( D=suspension(_,T,_,U,_,_,_,_,_),
|
|
T=mutable(active),
|
|
U=mutable(S) ->
|
|
'chr update_mutable'(inactive,T),
|
|
'known/1_1_$special_functor/3/3__2__0'(F,A,B,C,D)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_functor/3/3__2__0'(F,A,B,C,D)
|
|
).
|
|
'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,B,C,D) :-
|
|
'chr via_1'(A,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_functor/3/3__3__0'(G,A,B,C,D).
|
|
'known/1_1_$special_functor/3/3__3__0'([],A,B,C,D) :-
|
|
'known/1_1_$special_functor/3/3__4'(A,B,C,D).
|
|
'known/1_1_$special_functor/3/3__3__0'([E|F],A,B,C,D) :-
|
|
( E=suspension(_,J,_,_,_,_,G,_),
|
|
J=mutable(active),
|
|
nonvar(G),
|
|
G=(\+H),
|
|
nonvar(H),
|
|
H=functor(I,_,_),
|
|
I==A ->
|
|
remove_constraint_internal(E,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(E),
|
|
'detach_known/1_1_$special_;/2/2'(K,E)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_functor/3/3__3__0'(F,A,B,C,D)
|
|
;
|
|
'known/1_1_$special_functor/3/3__3__0'(F,A,B,C,D)
|
|
).
|
|
'known/1_1_$special_functor/3/3__3'(A,B,C,D) :-
|
|
'known/1_1_$special_functor/3/3__4'(A,B,C,D).
|
|
'known/1_1_$special_functor/3/3__4'(_,_,_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_functor/3/3'(A),
|
|
'attach_known/1_1_$special_functor/3/3'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_),
|
|
H/\32768=:=32768,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(C),
|
|
'detach_known/1_1_$special_\\=/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_\\=/2/2__0'(A,B,C),C,'known/1_1_$special_\\=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\=/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(D),
|
|
'detach_known/1_1_$special_\\=/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\=/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_\\=/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_\\=/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_\\=/2/2__0'(A,B,C),C,'known/1_1_$special_\\=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\=/2/2__1'(A,B,C).
|
|
'known/1_1_$special_\\=/2/2__1'(_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(A),
|
|
'detach_known/1_1_$special_\\=/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_\\=/2/2__1'(A,B,C) :-
|
|
ground(B),
|
|
ground(A),
|
|
'chr lock'(A),
|
|
'chr lock'(B),
|
|
A=B,
|
|
'chr unlock'(A),
|
|
'chr unlock'(B),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(C),
|
|
'detach_known/1_1_$special_\\=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_\\=/2/2__1'(A,B,C) :-
|
|
B==A,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(C),
|
|
'detach_known/1_1_$special_\\=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_\\=/2/2__1'(A,B,C) :-
|
|
nonvar(B),
|
|
(
|
|
var(A),
|
|
'chr lock'(B),
|
|
functor(B,D,E),
|
|
E>0,
|
|
'chr unlock'(B),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,K,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(C),
|
|
'detach_known/1_1_$special_\\=/2/2'(K,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
length(F,E),
|
|
B=..[D|G],
|
|
H=..[D|F],
|
|
add_args_nunif(G,F,I),
|
|
J=(\+functor(A,D,E);A=H,I),
|
|
known(J)
|
|
;
|
|
nonvar(A),
|
|
'chr lock'(A),
|
|
functor(A,M,N),
|
|
'chr unlock'(A),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,R,S),
|
|
( S==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(C),
|
|
'detach_known/1_1_$special_\\=/2/2'(R,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
( functor(B,M,N) ->
|
|
A=..[M|O],
|
|
B=..[M|P],
|
|
add_args_nunif(O,P,Q),
|
|
known(Q)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_\\=/2/2__1'(A,B,C) :-
|
|
'chr novel_production'(C,182),
|
|
!,
|
|
'chr extend_history'(C,182),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\=/2/2'(C),
|
|
'attach_known/1_1_$special_\\=/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\=/2'(B,A),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_\\=/2/2__2'(A,B,C)
|
|
;
|
|
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'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(I,_,_,G,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(D,H),
|
|
D=suspension(_,M,_,_,_,_,J),
|
|
M=mutable(active),
|
|
nonvar(J),
|
|
J=(K\=L),
|
|
K==A,
|
|
L==B,
|
|
!,
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(N,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(C),
|
|
'detach_known/1_1_$special_\\=/2/2'(P,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\=/2/2__2__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I\=J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\=/2/2'(C),
|
|
'attach_known/1_1_$special_\\=/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_\\=/2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\=/2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\=/2/2__3__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J\=K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\=/2/2'(C),
|
|
'attach_known/1_1_$special_\\=/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_\\=/2/2__3__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\=/2/2__3__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\=/2/2'(A),
|
|
'attach_known/1_1_$special_\\=/2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_),
|
|
H/\65536=:=65536,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(C),
|
|
'detach_known/1_1_$special_=/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=/2/2__0'(A,B,C),C,'known/1_1_$special_=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(D),
|
|
'detach_known/1_1_$special_=/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_=/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_=/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=/2/2__0'(A,B,C),C,'known/1_1_$special_=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=/2/2__1'(A,B,C).
|
|
'known/1_1_$special_=/2/2__1'(_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(A),
|
|
'detach_known/1_1_$special_=/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=/2/2__1'(A,B,C) :-
|
|
B==A,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(C),
|
|
'detach_known/1_1_$special_=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=/2/2__1'(A,B,C) :-
|
|
var(A),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(C),
|
|
'detach_known/1_1_$special_=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
A=B.
|
|
'known/1_1_$special_=/2/2__1'(A,B,C) :-
|
|
var(B),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(C),
|
|
'detach_known/1_1_$special_=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
A=B.
|
|
'known/1_1_$special_=/2/2__1'(A,B,C) :-
|
|
nonvar(B),
|
|
nonvar(A),
|
|
'chr lock'(A),
|
|
functor(A,D,E),
|
|
'chr unlock'(A),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,F,G),
|
|
( G==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(C),
|
|
'detach_known/1_1_$special_=/2/2'(F,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
( functor(B,D,E),
|
|
A=B ->
|
|
true
|
|
;
|
|
'known/1_1_$special_fail/0'
|
|
).
|
|
'known/1_1_$special_=/2/2__1'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(I,_,_,G,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(D,H),
|
|
D=suspension(_,M,_,_,_,_,J),
|
|
M=mutable(active),
|
|
nonvar(J),
|
|
J=(K=L),
|
|
K==A,
|
|
L==B,
|
|
!,
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(N,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(C),
|
|
'detach_known/1_1_$special_=/2/2'(P,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=/2/2__1__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I=J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=/2/2'(C),
|
|
'attach_known/1_1_$special_=/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=/2/2__1__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=/2/2__1__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=/2/2__2__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J=K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_=/2/2'(C),
|
|
'attach_known/1_1_$special_=/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_=/2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=/2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_=/2/2'(A),
|
|
'attach_known/1_1_$special_=/2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_),
|
|
H/\131072=:=131072,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(C),
|
|
'detach_known/1_1_$special_,/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_,/2/2__0'(A,B,C),C,'known/1_1_$special_,/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_,/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(D),
|
|
'detach_known/1_1_$special_,/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_,/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_,/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_,/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_,/2/2__0'(A,B,C),C,'known/1_1_$special_,/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_,/2/2__1'(A,B,C).
|
|
'known/1_1_$special_,/2/2__1'(_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(A),
|
|
'detach_known/1_1_$special_,/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_,/2/2__1'(A,B,C) :-
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(C),
|
|
'detach_known/1_1_$special_,/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
known(A),
|
|
known(B).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I,J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_,/2/2'(C),
|
|
'attach_known/1_1_$special_,/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_,/2/2__1__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_,/2/2__1__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_,/2/2__2__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J,K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_,/2/2'(C),
|
|
'attach_known/1_1_$special_,/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_,/2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_,/2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_,/2/2'(A),
|
|
'attach_known/1_1_$special_,/2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_),
|
|
H/\262144=:=262144,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(C),
|
|
'detach_known/1_1_$special_\\==/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_\\==/2/2__0'(A,B,C),C,'known/1_1_$special_\\==/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\==/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(D),
|
|
'detach_known/1_1_$special_\\==/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\==/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_\\==/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_\\==/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_\\==/2/2__0'(A,B,C),C,'known/1_1_$special_\\==/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\==/2/2__1'(A,B,C).
|
|
'known/1_1_$special_\\==/2/2__1'(A,B,C) :-
|
|
'chr novel_production'(C,138),
|
|
number(A),
|
|
!,
|
|
'chr extend_history'(C,138),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(C),
|
|
'attach_known/1_1_$special_\\==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2'(A,B),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_\\==/2/2__2'(A,B,C)
|
|
;
|
|
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'(A,B,C) :-
|
|
'chr novel_production'(C,139),
|
|
number(B),
|
|
!,
|
|
'chr extend_history'(C,139),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(C),
|
|
'attach_known/1_1_$special_\\==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2'(A,B),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_\\==/2/2__3'(A,B,C)
|
|
;
|
|
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) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(A),
|
|
'detach_known/1_1_$special_\\==/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_\\==/2/2__3'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(I,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,H,_,_,_,_,_,_),
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,M,_,_,_,_,J),
|
|
M=mutable(active),
|
|
nonvar(J),
|
|
J=(K\==L),
|
|
K==A,
|
|
L==B,
|
|
!,
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(N,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(C),
|
|
'detach_known/1_1_$special_\\==/2/2'(P,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\524288=:=524288,
|
|
'chr sbag_member'(R,H),
|
|
R=suspension(_,U,_,_,_,_,S,T),
|
|
U=mutable(active),
|
|
S==A,
|
|
T==B,
|
|
!,
|
|
remove_constraint_internal(R,V,W),
|
|
( W==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(R),
|
|
'detach_known/1_1_$special_==/2/2'(V,R)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,X,Y),
|
|
( Y==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(C),
|
|
'detach_known/1_1_$special_\\==/2/2'(X,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
).
|
|
'known/1_1_$special_\\==/2/2__3'(A,B,C) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_),
|
|
G/\524288=:=524288,
|
|
!,
|
|
'known/1_1_$special_\\==/2/2__3__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
E==A,
|
|
N=t(229,G,C),
|
|
'chr novel_production'(G,N),
|
|
'chr novel_production'(C,N) ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(C),
|
|
'attach_known/1_1_$special_\\==/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\==/2'(D,B),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_\\==/2/2__3__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\==/2/2__3__0'(H,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr novel_production'(C,231),
|
|
!,
|
|
'chr extend_history'(C,231),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(C),
|
|
'attach_known/1_1_$special_\\==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\==/2'(B,A),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_\\==/2/2__5'(A,B,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'(A,B,C) :-
|
|
B==A,
|
|
'chr novel_production'(C,232),
|
|
!,
|
|
'chr extend_history'(C,232),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(C),
|
|
'attach_known/1_1_$special_\\==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0',
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_\\==/2/2__6'(A,B,C)
|
|
;
|
|
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'(A,B,C) :-
|
|
nonvar(B),
|
|
nonvar(A),
|
|
'chr lock'(A),
|
|
functor(A,D,E),
|
|
'chr unlock'(A),
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(C),
|
|
'detach_known/1_1_$special_\\==/2/2'(I,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
( functor(B,D,E) ->
|
|
A=..[D|F],
|
|
B=..[D|G],
|
|
add_args_nmatch(F,G,H),
|
|
known(H)
|
|
;
|
|
true
|
|
).
|
|
'known/1_1_$special_\\==/2/2__6'(A,B,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\==/2/2__6__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I\==J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(C),
|
|
'attach_known/1_1_$special_\\==/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_\\==/2/2__6__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\==/2/2__6__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_\\==/2/2__7__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J\==K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(C),
|
|
'attach_known/1_1_$special_\\==/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_\\==/2/2__7__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_\\==/2/2__7__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_\\==/2/2'(A),
|
|
'attach_known/1_1_$special_\\==/2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_),
|
|
H/\524288=:=524288,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(C),
|
|
'detach_known/1_1_$special_==/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_==/2/2__0'(A,B,C),C,'known/1_1_$special_==/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_==/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(D),
|
|
'detach_known/1_1_$special_==/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_==/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_==/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_==/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_==/2/2__0'(A,B,C),C,'known/1_1_$special_==/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_==/2/2__1'(A,B,C).
|
|
'known/1_1_$special_==/2/2__1'(A,B,C) :-
|
|
'chr novel_production'(C,136),
|
|
number(A),
|
|
!,
|
|
'chr extend_history'(C,136),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2'(A,B),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_==/2/2__2'(A,B,C)
|
|
;
|
|
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'(A,B,C) :-
|
|
'chr novel_production'(C,137),
|
|
number(B),
|
|
!,
|
|
'chr extend_history'(C,137),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2'(A,B),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_==/2/2__3'(A,B,C)
|
|
;
|
|
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) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(A),
|
|
'detach_known/1_1_$special_==/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_==/2/2__3'(A,B,C) :-
|
|
B==A,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(C),
|
|
'detach_known/1_1_$special_==/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_==/2/2__3'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(I,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,H,_,_,_,_,_,_,_),
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,M,_,_,_,_,J),
|
|
M=mutable(active),
|
|
nonvar(J),
|
|
J=(K==L),
|
|
K==A,
|
|
L==B,
|
|
!,
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(N,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(C),
|
|
'detach_known/1_1_$special_==/2/2'(P,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\262144=:=262144,
|
|
'chr sbag_member'(R,H),
|
|
R=suspension(_,U,_,_,_,_,S,T),
|
|
U=mutable(active),
|
|
S==A,
|
|
T==B,
|
|
!,
|
|
remove_constraint_internal(R,V,W),
|
|
( W==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(R),
|
|
'detach_known/1_1_$special_\\==/2/2'(V,R)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,X,Y),
|
|
( Y==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(C),
|
|
'detach_known/1_1_$special_==/2/2'(X,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
).
|
|
'known/1_1_$special_==/2/2__3'(A,B,C) :-
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_),
|
|
G/\524288=:=524288,
|
|
!,
|
|
'known/1_1_$special_==/2/2__3__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
D==B,
|
|
N=t(228,C,G),
|
|
'chr novel_production'(C,N),
|
|
'chr novel_production'(G,N) ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_==/2'(A,E),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_==/2/2__3__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_==/2/2__3__0'(H,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_),
|
|
G/\524288=:=524288,
|
|
!,
|
|
'known/1_1_$special_==/2/2__4__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
E==A,
|
|
N=t(228,G,C),
|
|
'chr novel_production'(G,N),
|
|
'chr novel_production'(C,N) ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_==/2'(D,B),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_==/2/2__4__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_==/2/2__4__0'(H,A,B,C)
|
|
).
|
|
'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,B,C) :-
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_),
|
|
G/\262144=:=262144,
|
|
!,
|
|
'known/1_1_$special_==/2/2__5__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
D==B,
|
|
N=t(229,C,G),
|
|
'chr novel_production'(C,N),
|
|
'chr novel_production'(G,N) ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_\\==/2'(A,E),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_==/2/2__5__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_==/2/2__5__0'(H,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr novel_production'(C,230),
|
|
!,
|
|
'chr extend_history'(C,230),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_==/2'(B,A),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_==/2/2__7'(A,B,C)
|
|
;
|
|
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,C) :-
|
|
'chr novel_production'(C,234),
|
|
!,
|
|
'chr extend_history'(C,234),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=/2'(A,B),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_==/2/2__8'(A,B,C)
|
|
;
|
|
true
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_==/2/2__8__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I==J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_==/2/2__8__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_==/2/2__8__0'(E,A,B,C)
|
|
).
|
|
'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,B,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_==/2/2__9__0'(F,A,B,C).
|
|
'known/1_1_$special_==/2/2__9__0'([],A,B,C) :-
|
|
'known/1_1_$special_==/2/2__10'(A,B,C).
|
|
'known/1_1_$special_==/2/2__9__0'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J==K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(C),
|
|
'attach_known/1_1_$special_==/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_==/2/2__9__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_==/2/2__9__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_==/2/2__9'(A,B,C) :-
|
|
'known/1_1_$special_==/2/2__10'(A,B,C).
|
|
'known/1_1_$special_==/2/2__10'(_,_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_==/2/2'(A),
|
|
'attach_known/1_1_$special_==/2/2'(B,A)
|
|
;
|
|
true
|
|
).
|
|
'known/1_1_$special_is/2'(A,B) :-
|
|
'known/1_1_$special_is/2/2__0'(A,B,_).
|
|
'known/1_1_$special_is/2/2__0'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_),
|
|
H/\1048576=:=1048576,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_is/2/2'(C),
|
|
'detach_known/1_1_$special_is/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_is/2/2__0'(A,B,C),C,'known/1_1_$special_is/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_is/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'known/1_1_$special_is/2/2__0__0'([],A,B,C) :-
|
|
'known/1_1_$special_is/2/2__1'(A,B,C).
|
|
'known/1_1_$special_is/2/2__0__0'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_is/2/2'(D),
|
|
'detach_known/1_1_$special_is/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_is/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_is/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_is/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_is/2/2__0'(A,B,C),C,'known/1_1_$special_is/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_is/2/2__1'(A,B,C).
|
|
'known/1_1_$special_is/2/2__1'(A,B,C) :-
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_is/2/2'(C),
|
|
'detach_known/1_1_$special_is/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_=:=/2'(A,B).
|
|
'known/1_1_$special_is/2/2__1__0'([],A,B,C) :-
|
|
'known/1_1_$special_is/2/2__2'(A,B,C).
|
|
'known/1_1_$special_is/2/2__1__0'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I is J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_is/2/2'(C),
|
|
'attach_known/1_1_$special_is/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_is/2/2__1__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_is/2/2__1__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_is/2/2__1'(A,B,C) :-
|
|
'known/1_1_$special_is/2/2__2'(A,B,C).
|
|
'known/1_1_$special_is/2/2__2'(A,B,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_is/2/2__2__0'(F,A,B,C).
|
|
'known/1_1_$special_is/2/2__2__0'([],A,B,C) :-
|
|
'known/1_1_$special_is/2/2__3'(A,B,C).
|
|
'known/1_1_$special_is/2/2__2__0'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J is K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_is/2/2'(C),
|
|
'attach_known/1_1_$special_is/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_is/2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_is/2/2__2__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_is/2/2__2'(A,B,C) :-
|
|
'known/1_1_$special_is/2/2__3'(A,B,C).
|
|
'known/1_1_$special_is/2/2__3'(_,_,A) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_is/2/2'(A),
|
|
'attach_known/1_1_$special_is/2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_),
|
|
H/\2097152=:=2097152,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_</2/2'(C),
|
|
'detach_known/1_1_$special_</2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_</2/2__0'(A,B,C),C,'known/1_1_$special_</2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_</2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_</2/2'(D),
|
|
'detach_known/1_1_$special_</2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_</2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_</2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_</2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_</2/2__0'(A,B,C),C,'known/1_1_$special_</2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_</2/2__1'(A,B,C).
|
|
'known/1_1_$special_</2/2__1'(A,B,C) :-
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_</2/2'(C),
|
|
'detach_known/1_1_$special_</2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_=</2'(A,B),
|
|
'known/1_1_$special_=\\=/2'(A,B).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I<J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_</2/2'(C),
|
|
'attach_known/1_1_$special_</2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_</2/2__1__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_</2/2__1__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_</2/2__2__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J<K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_</2/2'(C),
|
|
'attach_known/1_1_$special_</2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_</2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_</2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_</2/2'(A),
|
|
'attach_known/1_1_$special_</2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_),
|
|
H/\4194304=:=4194304,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_>=/2/2'(C),
|
|
'detach_known/1_1_$special_>=/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_>=/2/2__0'(A,B,C),C,'known/1_1_$special_>=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_>=/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_>=/2/2'(D),
|
|
'detach_known/1_1_$special_>=/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_>=/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_>=/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_>=/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_>=/2/2__0'(A,B,C),C,'known/1_1_$special_>=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_>=/2/2__1'(A,B,C).
|
|
'known/1_1_$special_>=/2/2__1'(A,B,C) :-
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_>=/2/2'(C),
|
|
'detach_known/1_1_$special_>=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_=</2'(B,A).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I>=J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_>=/2/2'(C),
|
|
'attach_known/1_1_$special_>=/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_>=/2/2__1__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_>=/2/2__1__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_>=/2/2__2__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J>=K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_>=/2/2'(C),
|
|
'attach_known/1_1_$special_>=/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_>=/2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_>=/2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_>=/2/2'(A),
|
|
'attach_known/1_1_$special_>=/2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_),
|
|
H/\8388608=:=8388608,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_>/2/2'(C),
|
|
'detach_known/1_1_$special_>/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_>/2/2__0'(A,B,C),C,'known/1_1_$special_>/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_>/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_>/2/2'(D),
|
|
'detach_known/1_1_$special_>/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_>/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_>/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_>/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_>/2/2__0'(A,B,C),C,'known/1_1_$special_>/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_>/2/2__1'(A,B,C).
|
|
'known/1_1_$special_>/2/2__1'(A,B,C) :-
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_>/2/2'(C),
|
|
'detach_known/1_1_$special_>/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_</2'(B,A).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I>J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_>/2/2'(C),
|
|
'attach_known/1_1_$special_>/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_>/2/2__1__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_>/2/2__1__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_>/2/2__2__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J>K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_>/2/2'(C),
|
|
'attach_known/1_1_$special_>/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_>/2/2__2__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_>/2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_>/2/2'(A),
|
|
'attach_known/1_1_$special_>/2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_),
|
|
H/\16777216=:=16777216,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C),
|
|
'detach_known/1_1_$special_=</2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=</2/2__0'(A,B,C),C,'known/1_1_$special_=</2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=</2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(D),
|
|
'detach_known/1_1_$special_=</2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=</2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_=</2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_=</2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=</2/2__0'(A,B,C),C,'known/1_1_$special_=</2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=</2/2__1'(A,B,C).
|
|
'known/1_1_$special_=</2/2__1'(_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(A),
|
|
'detach_known/1_1_$special_=</2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=</2/2__1'(A,B,C) :-
|
|
B==A,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C),
|
|
'detach_known/1_1_$special_=</2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=</2/2__1'(A,B,C) :-
|
|
number(B),
|
|
(
|
|
number(A),
|
|
A>B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C),
|
|
'detach_known/1_1_$special_=</2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
'chr via_1'(A,G),
|
|
get_attr(G,guard_entailment,H),
|
|
H=v(J,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,I,_),
|
|
J/\16777216=:=16777216,
|
|
'chr sbag_member'(F,I),
|
|
F=suspension(_,M,_,_,_,_,K,L),
|
|
M=mutable(active),
|
|
K==A,
|
|
number(L),
|
|
L=<B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C),
|
|
'detach_known/1_1_$special_=</2/2'(N,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
).
|
|
'known/1_1_$special_=</2/2__1'(A,B,C) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
!,
|
|
'known/1_1_$special_=</2/2__1__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
number(G),
|
|
number(B),
|
|
B=<G ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(D),
|
|
'detach_known/1_1_$special_=</2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=</2/2__1__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_=</2/2__1__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
number(A),
|
|
'chr via_1'(B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_),
|
|
H/\16777216=:=16777216,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
J==B,
|
|
number(I),
|
|
A=<I,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C),
|
|
'detach_known/1_1_$special_=</2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=</2/2__2'(A,B,C) :-
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
!,
|
|
'known/1_1_$special_=</2/2__2__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
G==B,
|
|
number(A),
|
|
number(F),
|
|
F=<A ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(D),
|
|
'detach_known/1_1_$special_=</2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=</2/2__2__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_=</2/2__2__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(B,A,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G,_),
|
|
H/\16777216=:=16777216,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==B,
|
|
J==A,
|
|
!,
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(D),
|
|
'detach_known/1_1_$special_=</2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C),
|
|
'detach_known/1_1_$special_=</2/2'(N,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_=:=/2'(A,B).
|
|
'known/1_1_$special_=</2/2__3'(A,B,C) :-
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
!,
|
|
'known/1_1_$special_=</2/2__3__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
D==B,
|
|
N=t(187,C,G),
|
|
'chr novel_production'(C,N),
|
|
'chr novel_production'(G,N) ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(C),
|
|
'attach_known/1_1_$special_=</2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=</2'(A,E),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_=</2/2__3__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=</2/2__3__0'(H,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
!,
|
|
'known/1_1_$special_=</2/2__4__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
E==A,
|
|
N=t(187,G,C),
|
|
'chr novel_production'(G,N),
|
|
'chr novel_production'(C,N) ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(C),
|
|
'attach_known/1_1_$special_=</2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=</2'(D,B),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_=</2/2__4__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=</2/2__4__0'(H,A,B,C)
|
|
).
|
|
'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,B,C) :-
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F,_),
|
|
G/\16777216=:=16777216,
|
|
!,
|
|
'known/1_1_$special_=</2/2__5__0'(F,A,B,C).
|
|
'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'([F|L],A,B,C) :-
|
|
( F=suspension(_,G,_,_,_,_,D,E),
|
|
G=mutable(active),
|
|
D==B,
|
|
'chr via_2'(B,E,H),
|
|
get_attr(H,guard_entailment,I),
|
|
I=v(K,_,_,_,_,_,_,_,_,_,_,_,_,J,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
K/\4096=:=4096 ->
|
|
'known/1_1_$special_=</2/2__5__1'(J,E,F,L,A,B,C)
|
|
;
|
|
'known/1_1_$special_=</2/2__5__0'(L,A,B,C)
|
|
).
|
|
'known/1_1_$special_=</2/2__5__1'([],_,_,D,A,B,C) :-
|
|
'known/1_1_$special_=</2/2__5__0'(D,A,B,C).
|
|
'known/1_1_$special_=</2/2__5__1'([I|O],E,A,F,B,C,D) :-
|
|
( I=suspension(_,J,_,_,_,_,G,H),
|
|
J=mutable(active),
|
|
G==C,
|
|
H==E,
|
|
'chr via_2'(B,C,K),
|
|
get_attr(K,guard_entailment,L),
|
|
L=v(N,_,_,_,_,_,_,_,_,_,_,_,_,M,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
N/\4096=:=4096 ->
|
|
'known/1_1_$special_=</2/2__5__2'(M,I,O,E,A,F,B,C,D)
|
|
;
|
|
'known/1_1_$special_=</2/2__5__1'(O,E,A,F,B,C,D)
|
|
).
|
|
'known/1_1_$special_=</2/2__5__2'([],_,G,D,E,F,A,B,C) :-
|
|
'known/1_1_$special_=</2/2__5__1'(G,D,E,F,A,B,C).
|
|
'known/1_1_$special_=</2/2__5__2'([L|M],A,H,F,B,G,C,D,E) :-
|
|
( L=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
L\==A,
|
|
I==C,
|
|
J==D,
|
|
S=t(188,E,B,A,L),
|
|
'chr novel_production'(E,S),
|
|
'chr novel_production'(B,S),
|
|
'chr novel_production'(A,S),
|
|
'chr novel_production'(L,S) ->
|
|
'chr extend_history'(E,S),
|
|
activate_constraint(O,N,E,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(E),
|
|
'attach_known/1_1_$special_=</2/2'(N,E)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2'(C,F),
|
|
( E=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=</2/2__5__2'(M,A,H,F,B,G,C,D,E)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=</2/2__5__2'(M,A,H,F,B,G,C,D,E)
|
|
).
|
|
'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,C) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4096=:=4096,
|
|
!,
|
|
'known/1_1_$special_=</2/2__6__0'(F,A,B,C).
|
|
'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'([F|L],A,B,C) :-
|
|
( F=suspension(_,G,_,_,_,_,D,E),
|
|
G=mutable(active),
|
|
E==A,
|
|
'chr via_2'(D,A,H),
|
|
get_attr(H,guard_entailment,I),
|
|
I=v(K,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,J,_),
|
|
K/\16777216=:=16777216 ->
|
|
'known/1_1_$special_=</2/2__6__1'(J,D,F,L,A,B,C)
|
|
;
|
|
'known/1_1_$special_=</2/2__6__0'(L,A,B,C)
|
|
).
|
|
'known/1_1_$special_=</2/2__6__1'([],_,_,D,A,B,C) :-
|
|
'known/1_1_$special_=</2/2__6__0'(D,A,B,C).
|
|
'known/1_1_$special_=</2/2__6__1'([I|O],E,A,F,B,C,D) :-
|
|
( I=suspension(_,J,_,_,_,_,G,H),
|
|
J=mutable(active),
|
|
G==E,
|
|
H==B,
|
|
'chr via_2'(B,C,K),
|
|
get_attr(K,guard_entailment,L),
|
|
L=v(N,_,_,_,_,_,_,_,_,_,_,_,_,M,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
N/\4096=:=4096 ->
|
|
'known/1_1_$special_=</2/2__6__2'(M,I,O,E,A,F,B,C,D)
|
|
;
|
|
'known/1_1_$special_=</2/2__6__1'(O,E,A,F,B,C,D)
|
|
).
|
|
'known/1_1_$special_=</2/2__6__2'([],_,G,D,E,F,A,B,C) :-
|
|
'known/1_1_$special_=</2/2__6__1'(G,D,E,F,A,B,C).
|
|
'known/1_1_$special_=</2/2__6__2'([L|M],A,H,F,B,G,C,D,E) :-
|
|
( L=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
L\==B,
|
|
I==C,
|
|
J==D,
|
|
S=t(188,B,A,E,L),
|
|
'chr novel_production'(B,S),
|
|
'chr novel_production'(A,S),
|
|
'chr novel_production'(E,S),
|
|
'chr novel_production'(L,S) ->
|
|
'chr extend_history'(E,S),
|
|
activate_constraint(O,N,E,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(E),
|
|
'attach_known/1_1_$special_=</2/2'(N,E)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=\\=/2'(F,D),
|
|
( E=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=</2/2__6__2'(M,A,H,F,B,G,C,D,E)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=</2/2__6__2'(M,A,H,F,B,G,C,D,E)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(I,_,_,G,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(D,H),
|
|
D=suspension(_,M,_,_,_,_,J),
|
|
M=mutable(active),
|
|
nonvar(J),
|
|
J=(K=<L),
|
|
K==A,
|
|
L==B,
|
|
!,
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(N,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(C),
|
|
'detach_known/1_1_$special_=</2/2'(P,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=</2/2__7__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I=<J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(C),
|
|
'attach_known/1_1_$special_=</2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=</2/2__7__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=</2/2__7__0'(E,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=</2/2__8__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J=<K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(C),
|
|
'attach_known/1_1_$special_=</2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_=</2/2__8__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=</2/2__8__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_=</2/2'(A),
|
|
'attach_known/1_1_$special_=</2/2'(B,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,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,G),
|
|
H/\33554432=:=33554432,
|
|
(
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(C),
|
|
'detach_known/1_1_$special_=:=/2/2'(L,C)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=:=/2/2__0'(A,B,C),C,'known/1_1_$special_=:=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2/2__0__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,H,_,_,_,_,F,G),
|
|
H=mutable(active),
|
|
F==A,
|
|
G==B ->
|
|
remove_constraint_internal(D,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(D),
|
|
'detach_known/1_1_$special_=:=/2/2'(I,D)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2/2__0__0'(E,A,B,C)
|
|
;
|
|
'known/1_1_$special_=:=/2/2__0__0'(E,A,B,C)
|
|
).
|
|
'known/1_1_$special_=:=/2/2__0'(A,B,C) :-
|
|
( var(C) ->
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_=:=/2/2__0'(A,B,C),C,'known/1_1_$special_=:=/2'(A,B),[A,B])
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2/2__1'(A,B,C).
|
|
'known/1_1_$special_=:=/2/2__1'(_,_,A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(A),
|
|
'detach_known/1_1_$special_=:=/2/2'(E,A)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=:=/2/2__1'(A,B,C) :-
|
|
B==A,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(C),
|
|
'detach_known/1_1_$special_=:=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
).
|
|
'known/1_1_$special_=:=/2/2__1'(A,B,C) :-
|
|
number(B),
|
|
number(A),
|
|
A=\=B,
|
|
!,
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,D,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(C),
|
|
'detach_known/1_1_$special_=:=/2/2'(D,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_=:=/2/2__1'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(H,_,_,_,_,_,_,_,_,_,_,_,_,G,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
H/\4096=:=4096,
|
|
'chr sbag_member'(D,G),
|
|
D=suspension(_,K,_,_,_,_,I,J),
|
|
K=mutable(active),
|
|
I==A,
|
|
J==B,
|
|
!,
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(D),
|
|
'detach_known/1_1_$special_=\\=/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(C),
|
|
'detach_known/1_1_$special_=:=/2/2'(N,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'.
|
|
'known/1_1_$special_=:=/2/2__1'(A,B,C) :-
|
|
'chr via_1'(B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F),
|
|
G/\33554432=:=33554432,
|
|
!,
|
|
'known/1_1_$special_=:=/2/2__1__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
D==B,
|
|
N=t(193,C,G),
|
|
'chr novel_production'(C,N),
|
|
'chr novel_production'(G,N),
|
|
A\==E ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_=:=/2/2'(C),
|
|
'attach_known/1_1_$special_=:=/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2'(A,E),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_=:=/2/2__1__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=:=/2/2__1__0'(H,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr via_1'(A,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,F),
|
|
G/\33554432=:=33554432,
|
|
!,
|
|
'known/1_1_$special_=:=/2/2__2__0'(F,A,B,C).
|
|
'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'([G|H],A,B,C) :-
|
|
( G=suspension(_,F,_,_,_,_,D,E),
|
|
F=mutable(active),
|
|
E==A,
|
|
N=t(193,G,C),
|
|
'chr novel_production'(G,N),
|
|
'chr novel_production'(C,N),
|
|
D\==B ->
|
|
'chr extend_history'(C,N),
|
|
activate_constraint(J,I,C,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_=:=/2/2'(C),
|
|
'attach_known/1_1_$special_=:=/2/2'(I,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2'(D,B),
|
|
( C=suspension(_,L,_,M,_,_,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_=:=/2/2__2__0'(H,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=:=/2/2__2__0'(H,A,B,C)
|
|
).
|
|
'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,C) :-
|
|
'chr novel_production'(C,194),
|
|
!,
|
|
'chr extend_history'(C,194),
|
|
activate_constraint(E,D,C,F),
|
|
( E==yes ->
|
|
'$insert_in_store_known/1_1_$special_=:=/2/2'(C),
|
|
'attach_known/1_1_$special_=:=/2/2'(D,C)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_=:=/2'(B,A),
|
|
( C=suspension(_,G,_,H,_,_,_,_),
|
|
G=mutable(active),
|
|
H=mutable(F) ->
|
|
'chr update_mutable'(inactive,G),
|
|
'known/1_1_$special_=:=/2/2__4'(A,B,C)
|
|
;
|
|
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'(A,B,C) :-
|
|
'chr via_2'(A,B,E),
|
|
get_attr(E,guard_entailment,F),
|
|
F=v(I,_,_,G,_,_,_,_,_,_,_,_,_,_,H,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
I/\8192=:=8192,
|
|
'chr sbag_member'(D,H),
|
|
D=suspension(_,M,_,_,_,_,J),
|
|
M=mutable(active),
|
|
nonvar(J),
|
|
J=(K=:=L),
|
|
K==A,
|
|
L==B,
|
|
!,
|
|
remove_constraint_internal(D,N,O),
|
|
( O==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(D),
|
|
'detach_known/1_1_$special_\\+/1/1'(N,D)
|
|
;
|
|
true
|
|
),
|
|
( var(C) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(C,P,Q),
|
|
( Q==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(C),
|
|
'detach_known/1_1_$special_=:=/2/2'(P,C)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
I/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=:=/2/2__4__0'(G,A,B,C)
|
|
).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,K,_,_,_,_,F,G),
|
|
K=mutable(active),
|
|
nonvar(F),
|
|
F=(\+H),
|
|
nonvar(H),
|
|
H=(I=:=J),
|
|
I==A,
|
|
J==B ->
|
|
remove_constraint_internal(D,L,M),
|
|
( M==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(L,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(O,N,C,P),
|
|
( O==yes ->
|
|
'$insert_in_store_known/1_1_$special_=:=/2/2'(C),
|
|
'attach_known/1_1_$special_=:=/2/2'(N,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,Q,_,R,_,_,_,_),
|
|
Q=mutable(active),
|
|
R=mutable(P) ->
|
|
'chr update_mutable'(inactive,Q),
|
|
'known/1_1_$special_=:=/2/2__4__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=:=/2/2__4__0'(E,A,B,C)
|
|
).
|
|
'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,B,C) :-
|
|
'chr via_2'(A,B,D),
|
|
get_attr(D,guard_entailment,E),
|
|
E=v(G,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_=:=/2/2__5__0'(F,A,B,C).
|
|
'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'([D|E],A,B,C) :-
|
|
( D=suspension(_,L,_,_,_,_,F,G),
|
|
L=mutable(active),
|
|
nonvar(F),
|
|
F=(H,_),
|
|
nonvar(H),
|
|
H=(\+I),
|
|
nonvar(I),
|
|
I=(J=:=K),
|
|
J==A,
|
|
K==B ->
|
|
remove_constraint_internal(D,M,N),
|
|
( N==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(D),
|
|
'detach_known/1_1_$special_;/2/2'(M,D)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(P,O,C,Q),
|
|
( P==yes ->
|
|
'$insert_in_store_known/1_1_$special_=:=/2/2'(C),
|
|
'attach_known/1_1_$special_=:=/2/2'(O,C)
|
|
;
|
|
true
|
|
),
|
|
known(G),
|
|
( C=suspension(_,R,_,S,_,_,_,_),
|
|
R=mutable(active),
|
|
S=mutable(Q) ->
|
|
'chr update_mutable'(inactive,R),
|
|
'known/1_1_$special_=:=/2/2__5__0'(E,A,B,C)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_=:=/2/2__5__0'(E,A,B,C)
|
|
).
|
|
'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) :-
|
|
activate_constraint(C,B,A,_),
|
|
( C==yes ->
|
|
'$insert_in_store_known/1_1_$special_=:=/2/2'(A),
|
|
'attach_known/1_1_$special_=:=/2/2'(B,A)
|
|
;
|
|
true
|
|
).
|
|
'known/1_1_$special_fail/0' :-
|
|
'known/1_1_$special_fail/0/0__0'(_).
|
|
'known/1_1_$special_fail/0/0__0'(A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
(
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!
|
|
;
|
|
!,
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_fail/0/0__0'(A),A,'known/1_1_$special_fail/0',[]),
|
|
'known/1_1_$special_fail/0/0__0__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__0__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__1'(A).
|
|
'known/1_1_$special_fail/0/0__0__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,_,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_fail/0/0'(B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__0__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__0__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__0'(A) :-
|
|
allocate_constraint(guard_entailment:'known/1_1_$special_fail/0/0__0'(A),A,'known/1_1_$special_fail/0',[]),
|
|
'known/1_1_$special_fail/0/0__1'(A).
|
|
'known/1_1_$special_fail/0/0__1'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__1__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__1__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__2'(A).
|
|
'known/1_1_$special_fail/0/0__1__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(B),
|
|
'detach_known/1_1_$special_;/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__1__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__1__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__1'(A) :-
|
|
'known/1_1_$special_fail/0/0__2'(A).
|
|
'known/1_1_$special_fail/0/0__2'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\8=:=8,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__2__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__2__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__3'(A).
|
|
'known/1_1_$special_fail/0/0__2__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_nonvar/1/1'(B),
|
|
'detach_known/1_1_$special_nonvar/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__2__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__2__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__2'(A) :-
|
|
'known/1_1_$special_fail/0/0__3'(A).
|
|
'known/1_1_$special_fail/0/0__3'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\16=:=16,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__3__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__3__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__4'(A).
|
|
'known/1_1_$special_fail/0/0__3__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_var/1/1'(B),
|
|
'detach_known/1_1_$special_var/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__3__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__3__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__3'(A) :-
|
|
'known/1_1_$special_fail/0/0__4'(A).
|
|
'known/1_1_$special_fail/0/0__4'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\32=:=32,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__4__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__4__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__5'(A).
|
|
'known/1_1_$special_fail/0/0__4__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_atom/1/1'(B),
|
|
'detach_known/1_1_$special_atom/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__4__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__4__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__4'(A) :-
|
|
'known/1_1_$special_fail/0/0__5'(A).
|
|
'known/1_1_$special_fail/0/0__5'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\64=:=64,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__5__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__5__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__6'(A).
|
|
'known/1_1_$special_fail/0/0__5__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_atomic/1/1'(B),
|
|
'detach_known/1_1_$special_atomic/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__5__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__5__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__5'(A) :-
|
|
'known/1_1_$special_fail/0/0__6'(A).
|
|
'known/1_1_$special_fail/0/0__6'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\128=:=128,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__6__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__6__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__7'(A).
|
|
'known/1_1_$special_fail/0/0__6__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_compound/1/1'(B),
|
|
'detach_known/1_1_$special_compound/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__6__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__6__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__6'(A) :-
|
|
'known/1_1_$special_fail/0/0__7'(A).
|
|
'known/1_1_$special_fail/0/0__7'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\256=:=256,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__7__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__7__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__8'(A).
|
|
'known/1_1_$special_fail/0/0__7__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_ground/1/1'(B),
|
|
'detach_known/1_1_$special_ground/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__7__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__7__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__7'(A) :-
|
|
'known/1_1_$special_fail/0/0__8'(A).
|
|
'known/1_1_$special_fail/0/0__8'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\512=:=512,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__8__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__8__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__9'(A).
|
|
'known/1_1_$special_fail/0/0__8__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_integer/1/1'(B),
|
|
'detach_known/1_1_$special_integer/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__8__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__8__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__8'(A) :-
|
|
'known/1_1_$special_fail/0/0__9'(A).
|
|
'known/1_1_$special_fail/0/0__9'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\1024=:=1024,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__9__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__9__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__10'(A).
|
|
'known/1_1_$special_fail/0/0__9__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_float/1/1'(B),
|
|
'detach_known/1_1_$special_float/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__9__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__9__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__9'(A) :-
|
|
'known/1_1_$special_fail/0/0__10'(A).
|
|
'known/1_1_$special_fail/0/0__10'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\2048=:=2048,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__10__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__10__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__11'(A).
|
|
'known/1_1_$special_fail/0/0__10__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_number/1/1'(B),
|
|
'detach_known/1_1_$special_number/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__10__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__10__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__10'(A) :-
|
|
'known/1_1_$special_fail/0/0__11'(A).
|
|
'known/1_1_$special_fail/0/0__11'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\4096=:=4096,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__11__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__11__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__12'(A).
|
|
'known/1_1_$special_fail/0/0__11__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=\\=/2/2'(B),
|
|
'detach_known/1_1_$special_=\\=/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__11__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__11__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__11'(A) :-
|
|
'known/1_1_$special_fail/0/0__12'(A).
|
|
'known/1_1_$special_fail/0/0__12'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\8192=:=8192,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__12__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__12__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__13'(A).
|
|
'known/1_1_$special_fail/0/0__12__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__12__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__12__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__12'(A) :-
|
|
'known/1_1_$special_fail/0/0__13'(A).
|
|
'known/1_1_$special_fail/0/0__13'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\16384=:=16384,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__13__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__13__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__14'(A).
|
|
'known/1_1_$special_fail/0/0__13__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_functor/3/3'(B),
|
|
'detach_known/1_1_$special_functor/3/3'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__13__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__13__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__13'(A) :-
|
|
'known/1_1_$special_fail/0/0__14'(A).
|
|
'known/1_1_$special_fail/0/0__14'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_,_),
|
|
E/\32768=:=32768,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__14__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__14__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__15'(A).
|
|
'known/1_1_$special_fail/0/0__14__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\=/2/2'(B),
|
|
'detach_known/1_1_$special_\\=/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__14__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__14__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__14'(A) :-
|
|
'known/1_1_$special_fail/0/0__15'(A).
|
|
'known/1_1_$special_fail/0/0__15'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_,_),
|
|
E/\65536=:=65536,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__15__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__15__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__16'(A).
|
|
'known/1_1_$special_fail/0/0__15__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=/2/2'(B),
|
|
'detach_known/1_1_$special_=/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__15__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__15__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__15'(A) :-
|
|
'known/1_1_$special_fail/0/0__16'(A).
|
|
'known/1_1_$special_fail/0/0__16'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_,_),
|
|
E/\131072=:=131072,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__16__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__16__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__17'(A).
|
|
'known/1_1_$special_fail/0/0__16__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_,/2/2'(B),
|
|
'detach_known/1_1_$special_,/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__16__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__16__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__16'(A) :-
|
|
'known/1_1_$special_fail/0/0__17'(A).
|
|
'known/1_1_$special_fail/0/0__17'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_,_),
|
|
E/\262144=:=262144,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__17__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__17__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__18'(A).
|
|
'known/1_1_$special_fail/0/0__17__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\==/2/2'(B),
|
|
'detach_known/1_1_$special_\\==/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__17__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__17__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__17'(A) :-
|
|
'known/1_1_$special_fail/0/0__18'(A).
|
|
'known/1_1_$special_fail/0/0__18'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_,_),
|
|
E/\524288=:=524288,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__18__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__18__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__19'(A).
|
|
'known/1_1_$special_fail/0/0__18__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_==/2/2'(B),
|
|
'detach_known/1_1_$special_==/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__18__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__18__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__18'(A) :-
|
|
'known/1_1_$special_fail/0/0__19'(A).
|
|
'known/1_1_$special_fail/0/0__19'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_,_),
|
|
E/\1048576=:=1048576,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__19__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__19__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__20'(A).
|
|
'known/1_1_$special_fail/0/0__19__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_is/2/2'(B),
|
|
'detach_known/1_1_$special_is/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__19__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__19__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__19'(A) :-
|
|
'known/1_1_$special_fail/0/0__20'(A).
|
|
'known/1_1_$special_fail/0/0__20'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_,_),
|
|
E/\2097152=:=2097152,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__20__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__20__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__21'(A).
|
|
'known/1_1_$special_fail/0/0__20__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_</2/2'(B),
|
|
'detach_known/1_1_$special_</2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__20__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__20__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__20'(A) :-
|
|
'known/1_1_$special_fail/0/0__21'(A).
|
|
'known/1_1_$special_fail/0/0__21'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_,_),
|
|
E/\4194304=:=4194304,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__21__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__21__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__22'(A).
|
|
'known/1_1_$special_fail/0/0__21__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_>=/2/2'(B),
|
|
'detach_known/1_1_$special_>=/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__21__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__21__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__21'(A) :-
|
|
'known/1_1_$special_fail/0/0__22'(A).
|
|
'known/1_1_$special_fail/0/0__22'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_,_),
|
|
E/\8388608=:=8388608,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__22__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__22__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__23'(A).
|
|
'known/1_1_$special_fail/0/0__22__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_>/2/2'(B),
|
|
'detach_known/1_1_$special_>/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__22__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__22__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__22'(A) :-
|
|
'known/1_1_$special_fail/0/0__23'(A).
|
|
'known/1_1_$special_fail/0/0__23'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D,_),
|
|
E/\16777216=:=16777216,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__23__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__23__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__24'(A).
|
|
'known/1_1_$special_fail/0/0__23__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=</2/2'(B),
|
|
'detach_known/1_1_$special_=</2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__23__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__23__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__23'(A) :-
|
|
'known/1_1_$special_fail/0/0__24'(A).
|
|
'known/1_1_$special_fail/0/0__24'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,D),
|
|
E/\33554432=:=33554432,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__24__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__24__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__25'(A).
|
|
'known/1_1_$special_fail/0/0__24__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$special_=:=/2/2'(B),
|
|
'detach_known/1_1_$special_=:=/2/2'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__24__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__24__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__24'(A) :-
|
|
'known/1_1_$special_fail/0/0__25'(A).
|
|
'known/1_1_$special_fail/0/0__25'(A) :-
|
|
nb_getval('$chr_store_global_ground_guard_entailment:known/1_1_$special_fail/0/0',C),
|
|
(
|
|
'chr sbag_member'(B,C),
|
|
B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active),
|
|
!,
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,_,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_fail/0/0'(A)
|
|
;
|
|
true
|
|
)
|
|
)
|
|
;
|
|
!,
|
|
'known/1_1_$special_fail/0/0__25__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__25__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__26'(A).
|
|
'known/1_1_$special_fail/0/0__25__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,_,E),
|
|
( E==yes ->
|
|
'$delete_from_store_known/1_1_$special_fail/0/0'(B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__25__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__25__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__25'(A) :-
|
|
'known/1_1_$special_fail/0/0__26'(A).
|
|
'known/1_1_$special_fail/0/0__26'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\2=:=2,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__26__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__26__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__27'(A).
|
|
'known/1_1_$special_fail/0/0__26__0'([B|C],A) :-
|
|
( B=suspension(_,D,_,_,_,_,_),
|
|
D=mutable(active) ->
|
|
remove_constraint_internal(B,E,F),
|
|
( F==yes ->
|
|
'$delete_from_store_known/1_1_$default/1'(B),
|
|
'detach_known/1_1_$default/1'(E,B)
|
|
;
|
|
true
|
|
),
|
|
'known/1_1_$special_fail/0/0__26__0'(C,A)
|
|
;
|
|
'known/1_1_$special_fail/0/0__26__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__26'(A) :-
|
|
'known/1_1_$special_fail/0/0__27'(A).
|
|
'known/1_1_$special_fail/0/0__27'(A) :-
|
|
'chr default_store'(C),
|
|
get_attr(C,guard_entailment,D),
|
|
D=v(G,_,_,E,_,_,_,_,_,_,_,_,_,_,F,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
(
|
|
G/\8192=:=8192,
|
|
'chr sbag_member'(B,F),
|
|
B=suspension(_,I,_,_,_,_,H),
|
|
I=mutable(active),
|
|
H==fail,
|
|
!,
|
|
remove_constraint_internal(B,J,K),
|
|
( K==yes ->
|
|
'$delete_from_store_known/1_1_$special_\\+/1/1'(B),
|
|
'detach_known/1_1_$special_\\+/1/1'(J,B)
|
|
;
|
|
true
|
|
),
|
|
( var(A) ->
|
|
true
|
|
;
|
|
remove_constraint_internal(A,_,L),
|
|
( L==yes ->
|
|
'$delete_from_store_known/1_1_$special_fail/0/0'(A)
|
|
;
|
|
true
|
|
)
|
|
),
|
|
'known/1_1_$special_fail/0'
|
|
;
|
|
G/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__27__0'(E,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__27__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__28'(A).
|
|
'known/1_1_$special_fail/0/0__27__0'([B|C],A) :-
|
|
( B=suspension(_,G,_,_,_,_,D,E),
|
|
G=mutable(active),
|
|
nonvar(D),
|
|
D=(\+F),
|
|
F==fail ->
|
|
remove_constraint_internal(B,H,I),
|
|
( I==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(B),
|
|
'detach_known/1_1_$special_;/2/2'(H,B)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(J,_,A,K),
|
|
( J==yes ->
|
|
'$insert_in_store_known/1_1_$special_fail/0/0'(A)
|
|
;
|
|
true
|
|
),
|
|
known(E),
|
|
( A=suspension(_,L,_,M,_,_),
|
|
L=mutable(active),
|
|
M=mutable(K) ->
|
|
'chr update_mutable'(inactive,L),
|
|
'known/1_1_$special_fail/0/0__27__0'(C,A)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_fail/0/0__27__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__27'(A) :-
|
|
'known/1_1_$special_fail/0/0__28'(A).
|
|
'known/1_1_$special_fail/0/0__28'(A) :-
|
|
'chr default_store'(B),
|
|
get_attr(B,guard_entailment,C),
|
|
C=v(E,_,_,D,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_),
|
|
E/\4=:=4,
|
|
!,
|
|
'known/1_1_$special_fail/0/0__28__0'(D,A).
|
|
'known/1_1_$special_fail/0/0__28__0'([],A) :-
|
|
'known/1_1_$special_fail/0/0__29'(A).
|
|
'known/1_1_$special_fail/0/0__28__0'([B|C],A) :-
|
|
( B=suspension(_,H,_,_,_,_,D,E),
|
|
H=mutable(active),
|
|
nonvar(D),
|
|
D=(F,_),
|
|
nonvar(F),
|
|
F=(\+G),
|
|
G==fail ->
|
|
remove_constraint_internal(B,I,J),
|
|
( J==yes ->
|
|
'$delete_from_store_known/1_1_$special_;/2/2'(B),
|
|
'detach_known/1_1_$special_;/2/2'(I,B)
|
|
;
|
|
true
|
|
),
|
|
activate_constraint(K,_,A,L),
|
|
( K==yes ->
|
|
'$insert_in_store_known/1_1_$special_fail/0/0'(A)
|
|
;
|
|
true
|
|
),
|
|
known(E),
|
|
( A=suspension(_,M,_,N,_,_),
|
|
M=mutable(active),
|
|
N=mutable(L) ->
|
|
'chr update_mutable'(inactive,M),
|
|
'known/1_1_$special_fail/0/0__28__0'(C,A)
|
|
;
|
|
true
|
|
)
|
|
;
|
|
'known/1_1_$special_fail/0/0__28__0'(C,A)
|
|
).
|
|
'known/1_1_$special_fail/0/0__28'(A) :-
|
|
'known/1_1_$special_fail/0/0__29'(A).
|
|
'known/1_1_$special_fail/0/0__29'(A) :-
|
|
activate_constraint(B,_,A,_),
|
|
( B==yes ->
|
|
'$insert_in_store_known/1_1_$special_fail/0/0'(A)
|
|
;
|
|
true
|
|
).
|
|
:-multifile chr:'$chr_module'/1.
|
|
chr:'$chr_module'(guard_entailment).
|