1:- module(guard_entailment, 2 [ entails_guard/2, 3 simplify_guards/5 4 ]). 5:- include(chr(chr_op)). 6:- use_module(library(dialect/hprolog)). 7:- use_module(library(lists)). 8:- use_module(chr(builtins)). 9:- use_module(chr(chr_compiler_errors)). 10:- chr_option(debug, off). 11:- chr_option(optimize, full). 12:- chr_option(verbosity,off). 13%:- chr_option(dynattr,on). 14:- chr_constraint known/1, test/1, cleanup/0, variables/1. 15entails_guard(A, B) :- 16 copy_term_nat((A, B), (C, F)), 17 term_variables(C, D), 18 variables(D), 19 sort(C, E), 20 entails_guard2(E), !, 21 test(F), !, 22 cleanup. 23entails_guard2([]). 24entails_guard2([A|B]) :- 25 known(A), 26 entails_guard2(B). 27simplify_guards(A, H, B, G, I) :- 28 copy_term_nat((A, B), (C, E)), 29 term_variables(C, D), 30 variables(D), 31 sort(C,Z), 32 entails_guard2(Z), !, 33 simplify(E, F), 34 simplified(B, F, G, H, I), !, 35 cleanup. 36simplified([], [], [], A, A). 37simplified([A|B], [keep|C], [A|D], E, F) :- 38 simplified(B, C, D, E, F). 39simplified([_|_], [fail|_], fail, A, A). 40simplified([A|B], [true|L], [I|M], F, J) :- 41 builtins:binds_b(A, C), 42 term_variables(B, D), 43 intersect_eq(C, D, E), !, 44 ( E=[] 45 -> term_variables(F, G), 46 intersect_eq(C, G, H), !, 47 ( H=[] 48 -> I=true, 49 J=K 50 ; I=true, 51 J= (A, K) 52 ) 53 ; I=A, 54 J=K 55 ), 56 simplified(B, L, M, F, K). 57simplify([], []). 58simplify([A|D], [B|E]) :- 59 ( \+try(true, A) 60 -> B=true 61 ; builtins:negate_b(A, C), 62 ( \+try(true, C) 63 -> B=fail 64 ; B=keep 65 ) 66 ), 67 known(A), 68 simplify(D, E). 69try(A, B) :- 70 ( known(A) 71 -> true 72 ; chr_error(internal, 'Entailment Checker: try/2.\n', []) 73 ), 74 ( test(B) 75 -> fail 76 ; true 77 ). 78add_args_unif([], [], true). 79add_args_unif([A|C], [B|D], (A=B, E)) :- 80 add_args_unif(C, D, E). 81add_args_nunif([], [], fail). 82add_args_nunif([A|C], [B|D], (A\=B;E)) :- 83 add_args_nunif(C, D, E). 84add_args_nmatch([], [], fail). 85add_args_nmatch([A|C], [B|D], (A\==B;E)) :- 86 add_args_nmatch(C, D, E). 87all_unique_vars(A, B) :- 88 all_unique_vars(A, B, []). 89all_unique_vars([], _, _). 90all_unique_vars([A|D], B, C) :- 91 var(A), 92 \+memberchk_eq(A, B), 93 \+memberchk_eq(A, C), 94 all_unique_vars(D, [A|C]). 95:- chr_constraint'test/1_1_$default'/1, 'test/1_1_$special_,/2'/2, 'test/1_1_$special_\\+/1'/1, 'test/1_1_$special_integer/1'/1, 'test/1_1_$special_float/1'/1, 'test/1_1_$special_number/1'/1, 'test/1_1_$special_ground/1'/1, 'test/1_1_$special_=:=/2'/2, 'test/1_1_$special_==/2'/2, 'test/1_1_$special_true/0'/0, 'test/1_1_$special_functor/3'/3, 'test/1_1_$special_=/2'/2, 'test/1_1_$special_;/2'/2, 'test/1_1_$special_is/2'/2, 'test/1_1_$special_</2'/2, 'test/1_1_$special_>=/2'/2, 'test/1_1_$special_>/2'/2, 'test/1_1_$special_=\\=/2'/2, 'test/1_1_$special_=</2'/2, 'test/1_1_$special_\\==/2'/2, 'known/1_1_$default'/1, 'known/1_1_$special_;/2'/2, 'known/1_1_$special_nonvar/1'/1, 'known/1_1_$special_var/1'/1, 'known/1_1_$special_atom/1'/1, 'known/1_1_$special_atomic/1'/1, 'known/1_1_$special_compound/1'/1, 'known/1_1_$special_ground/1'/1, 'known/1_1_$special_integer/1'/1, 'known/1_1_$special_float/1'/1, 'known/1_1_$special_number/1'/1, 'known/1_1_$special_=\\=/2'/2, 'known/1_1_$special_\\+/1'/1, 'known/1_1_$special_functor/3'/3, 'known/1_1_$special_\\=/2'/2, 'known/1_1_$special_=/2'/2, 'known/1_1_$special_,/2'/2, 'known/1_1_$special_\\==/2'/2, 'known/1_1_$special_==/2'/2, 'known/1_1_$special_is/2'/2, 'known/1_1_$special_</2'/2, 'known/1_1_$special_>=/2'/2, 'known/1_1_$special_>/2'/2, 'known/1_1_$special_=</2'/2, 'known/1_1_$special_=:=/2'/2, 'known/1_1_$special_fail/0'/0. 96test((A, B))<=>'test/1_1_$special_,/2'(A, B). 97test(\+A)<=>'test/1_1_$special_\\+/1'(A). 98test(integer(A))<=>'test/1_1_$special_integer/1'(A). 99test(float(A))<=>'test/1_1_$special_float/1'(A). 100test(number(A))<=>'test/1_1_$special_number/1'(A). 101test(ground(A))<=>'test/1_1_$special_ground/1'(A). 102test(A=:=B)<=>'test/1_1_$special_=:=/2'(A, B). 103test(A==B)<=>'test/1_1_$special_==/2'(A, B). 104test(true)<=>'test/1_1_$special_true/0'. 105test(functor(A, B, C))<=>'test/1_1_$special_functor/3'(A, B, C). 106test(A=B)<=>'test/1_1_$special_=/2'(A, B). 107test((A;B))<=>'test/1_1_$special_;/2'(A, B). 108test(A is B)<=>'test/1_1_$special_is/2'(A, B). 109test(A<B)<=>'test/1_1_$special_</2'(A, B). 110test(A>=B)<=>'test/1_1_$special_>=/2'(A, B). 111test(A>B)<=>'test/1_1_$special_>/2'(A, B). 112test(A=\=B)<=>'test/1_1_$special_=\\=/2'(A, B). 113test(A=<B)<=>'test/1_1_$special_=</2'(A, B). 114test(A\==B)<=>'test/1_1_$special_\\==/2'(A, B). 115test(A)<=>'test/1_1_$default'(A). 116known((A;B))<=>'known/1_1_$special_;/2'(A, B). 117known(nonvar(A))<=>'known/1_1_$special_nonvar/1'(A). 118known(var(A))<=>'known/1_1_$special_var/1'(A). 119known(atom(A))<=>'known/1_1_$special_atom/1'(A). 120known(atomic(A))<=>'known/1_1_$special_atomic/1'(A). 121known(compound(A))<=>'known/1_1_$special_compound/1'(A). 122known(ground(A))<=>'known/1_1_$special_ground/1'(A). 123known(integer(A))<=>'known/1_1_$special_integer/1'(A). 124known(float(A))<=>'known/1_1_$special_float/1'(A). 125known(number(A))<=>'known/1_1_$special_number/1'(A). 126known(A=\=B)<=>'known/1_1_$special_=\\=/2'(A, B). 127known(\+A)<=>'known/1_1_$special_\\+/1'(A). 128known(functor(A, B, C))<=>'known/1_1_$special_functor/3'(A, B, C). 129known(A\=B)<=>'known/1_1_$special_\\=/2'(A, B). 130known(A=B)<=>'known/1_1_$special_=/2'(A, B). 131known((A, B))<=>'known/1_1_$special_,/2'(A, B). 132known(A\==B)<=>'known/1_1_$special_\\==/2'(A, B). 133known(A==B)<=>'known/1_1_$special_==/2'(A, B). 134known(A is B)<=>'known/1_1_$special_is/2'(A, B). 135known(A<B)<=>'known/1_1_$special_</2'(A, B). 136known(A>=B)<=>'known/1_1_$special_>=/2'(A, B). 137known(A>B)<=>'known/1_1_$special_>/2'(A, B). 138known(A=<B)<=>'known/1_1_$special_=</2'(A, B). 139known(A=:=B)<=>'known/1_1_$special_=:=/2'(A, B). 140known(fail)<=>'known/1_1_$special_fail/0'. 141known(A)<=>'known/1_1_$default'(A). 142'known/1_1_$special_;/2'(A, B)\'known/1_1_$special_;/2'(A, B)<=>true. 143'known/1_1_$special_nonvar/1'(A)\'known/1_1_$special_nonvar/1'(A)<=>true. 144'known/1_1_$special_var/1'(A)\'known/1_1_$special_var/1'(A)<=>true. 145'known/1_1_$special_atom/1'(A)\'known/1_1_$special_atom/1'(A)<=>true. 146'known/1_1_$special_atomic/1'(A)\'known/1_1_$special_atomic/1'(A)<=>true. 147'known/1_1_$special_compound/1'(A)\'known/1_1_$special_compound/1'(A)<=>true. 148'known/1_1_$special_ground/1'(A)\'known/1_1_$special_ground/1'(A)<=>true. 149'known/1_1_$special_integer/1'(A)\'known/1_1_$special_integer/1'(A)<=>true. 150'known/1_1_$special_float/1'(A)\'known/1_1_$special_float/1'(A)<=>true. 151'known/1_1_$special_number/1'(A)\'known/1_1_$special_number/1'(A)<=>true. 152'known/1_1_$special_=\\=/2'(A, B)\'known/1_1_$special_=\\=/2'(A, B)<=>true. 153'known/1_1_$special_\\+/1'(A)\'known/1_1_$special_\\+/1'(A)<=>true. 154'known/1_1_$special_functor/3'(A, B, C)\'known/1_1_$special_functor/3'(A, B, C)<=>true. 155'known/1_1_$special_\\=/2'(A, B)\'known/1_1_$special_\\=/2'(A, B)<=>true. 156'known/1_1_$special_=/2'(A, B)\'known/1_1_$special_=/2'(A, B)<=>true. 157'known/1_1_$special_,/2'(A, B)\'known/1_1_$special_,/2'(A, B)<=>true. 158'known/1_1_$special_\\==/2'(A, B)\'known/1_1_$special_\\==/2'(A, B)<=>true. 159'known/1_1_$special_==/2'(A, B)\'known/1_1_$special_==/2'(A, B)<=>true. 160'known/1_1_$special_is/2'(A, B)\'known/1_1_$special_is/2'(A, B)<=>true. 161'known/1_1_$special_</2'(A, B)\'known/1_1_$special_</2'(A, B)<=>true. 162'known/1_1_$special_>=/2'(A, B)\'known/1_1_$special_>=/2'(A, B)<=>true. 163'known/1_1_$special_>/2'(A, B)\'known/1_1_$special_>/2'(A, B)<=>true. 164'known/1_1_$special_=</2'(A, B)\'known/1_1_$special_=</2'(A, B)<=>true. 165'known/1_1_$special_=:=/2'(A, B)\'known/1_1_$special_=:=/2'(A, B)<=>true. 166'known/1_1_$special_fail/0'\'known/1_1_$special_fail/0'<=>true. 167'known/1_1_$default'(A)\'known/1_1_$default'(A)<=>true. 168'known/1_1_$special_fail/0'\'test/1_1_$special_,/2'(_, _)<=>true. 169'known/1_1_$special_fail/0'\'test/1_1_$special_\\+/1'(_)<=>true. 170'known/1_1_$special_fail/0'\'test/1_1_$special_integer/1'(_)<=>true. 171'known/1_1_$special_fail/0'\'test/1_1_$special_float/1'(_)<=>true. 172'known/1_1_$special_fail/0'\'test/1_1_$special_number/1'(_)<=>true. 173'known/1_1_$special_fail/0'\'test/1_1_$special_ground/1'(_)<=>true. 174'known/1_1_$special_fail/0'\'test/1_1_$special_=:=/2'(_, _)<=>true. 175'known/1_1_$special_fail/0'\'test/1_1_$special_==/2'(_, _)<=>true. 176'known/1_1_$special_fail/0'\'test/1_1_$special_true/0'<=>true. 177'known/1_1_$special_fail/0'\'test/1_1_$special_functor/3'(_, _, _)<=>true. 178'known/1_1_$special_fail/0'\'test/1_1_$special_=/2'(_, _)<=>true. 179'known/1_1_$special_fail/0'\'test/1_1_$special_;/2'(_, _)<=>true. 180'known/1_1_$special_fail/0'\'test/1_1_$special_is/2'(_, _)<=>true. 181'known/1_1_$special_fail/0'\'test/1_1_$special_</2'(_, _)<=>true. 182'known/1_1_$special_fail/0'\'test/1_1_$special_>=/2'(_, _)<=>true. 183'known/1_1_$special_fail/0'\'test/1_1_$special_>/2'(_, _)<=>true. 184'known/1_1_$special_fail/0'\'test/1_1_$special_=\\=/2'(_, _)<=>true. 185'known/1_1_$special_fail/0'\'test/1_1_$special_=</2'(_, _)<=>true. 186'known/1_1_$special_fail/0'\'test/1_1_$special_\\==/2'(_, _)<=>true. 187'known/1_1_$special_fail/0'\'test/1_1_$default'(_)<=>true. 188'known/1_1_$special_;/2'(A, B)\'test/1_1_$special_;/2'(A, B)<=>true. 189'known/1_1_$special_nonvar/1'(A)\'test/1_1_$default'(nonvar(A))<=>true. 190'known/1_1_$special_var/1'(A)\'test/1_1_$default'(var(A))<=>true. 191'known/1_1_$special_atom/1'(A)\'test/1_1_$default'(atom(A))<=>true. 192'known/1_1_$special_atomic/1'(A)\'test/1_1_$default'(atomic(A))<=>true. 193'known/1_1_$special_compound/1'(A)\'test/1_1_$default'(compound(A))<=>true. 194'known/1_1_$special_ground/1'(A)\'test/1_1_$special_ground/1'(A)<=>true. 195'known/1_1_$special_integer/1'(A)\'test/1_1_$special_integer/1'(A)<=>true. 196'known/1_1_$special_float/1'(A)\'test/1_1_$special_float/1'(A)<=>true. 197'known/1_1_$special_number/1'(A)\'test/1_1_$special_number/1'(A)<=>true. 198'known/1_1_$special_=\\=/2'(A, B)\'test/1_1_$special_=\\=/2'(A, B)<=>true. 199'known/1_1_$special_\\+/1'(A)\'test/1_1_$special_\\+/1'(A)<=>true. 200'known/1_1_$special_functor/3'(A, B, C)\'test/1_1_$special_functor/3'(A, B, C)<=>true. 201'known/1_1_$special_\\=/2'(A, B)\'test/1_1_$default'(A\=B)<=>true. 202'known/1_1_$special_=/2'(A, B)\'test/1_1_$special_=/2'(A, B)<=>true. 203'known/1_1_$special_,/2'(A, B)\'test/1_1_$special_,/2'(A, B)<=>true. 204'known/1_1_$special_\\==/2'(A, B)\'test/1_1_$special_\\==/2'(A, B)<=>true. 205'known/1_1_$special_==/2'(A, B)\'test/1_1_$special_==/2'(A, B)<=>true. 206'known/1_1_$special_is/2'(A, B)\'test/1_1_$special_is/2'(A, B)<=>true. 207'known/1_1_$special_</2'(A, B)\'test/1_1_$special_</2'(A, B)<=>true. 208'known/1_1_$special_>=/2'(A, B)\'test/1_1_$special_>=/2'(A, B)<=>true. 209'known/1_1_$special_>/2'(A, B)\'test/1_1_$special_>/2'(A, B)<=>true. 210'known/1_1_$special_=</2'(A, B)\'test/1_1_$special_=</2'(A, B)<=>true. 211'known/1_1_$special_=:=/2'(A, B)\'test/1_1_$special_=:=/2'(A, B)<=>true. 212'known/1_1_$special_fail/0'\'test/1_1_$default'(fail)<=>true. 213'known/1_1_$default'(A)\'test/1_1_$default'(A)<=>true. 214'test/1_1_$special_\\==/2'(F, A)<=>nonvar(A), functor(A, C, B)|A=..[_|E], length(D, B), G=..[C|D], add_args_nmatch(D, E, H), I= (\+functor(F, C, B);functor(F, C, B), F=G, H), test(I). 215'test/1_1_$special_\\==/2'(A, B)<=>nonvar(A)|'test/1_1_$special_\\==/2'(B, A). 216'known/1_1_$special_=:=/2'(A, B)\'test/1_1_$special_=</2'(A, B)<=>true. 217'known/1_1_$special_=:=/2'(A, C)\'test/1_1_$special_=</2'(A, B)<=>number(B), number(C), C=<B|true. 218'known/1_1_$special_=:=/2'(A, C)\'test/1_1_$special_=</2'(B, A)<=>number(B), number(C), B=<C|true. 219'known/1_1_$special_=</2'(A, C)\'test/1_1_$special_=</2'(A, B)<=>number(B), number(C), C=<B|true. 220'known/1_1_$special_=</2'(B, A)\'test/1_1_$special_=</2'(C, A)<=>number(B), number(C), C=<B|true. 221'known/1_1_$special_=</2'(A, C)\'test/1_1_$special_=\\=/2'(A, B)<=>number(B), number(C), B>C|true. 222'known/1_1_$special_=</2'(B, A)\'test/1_1_$special_=\\=/2'(A, C)<=>number(B), number(C), C<B|true. 223'known/1_1_$special_>/2'(B, A)<=>'known/1_1_$special_</2'(A, B). 224'known/1_1_$special_>=/2'(B, A)<=>'known/1_1_$special_=</2'(A, B). 225'known/1_1_$special_</2'(A, B)<=>'known/1_1_$special_=</2'(A, B), 'known/1_1_$special_=\\=/2'(A, B). 226'known/1_1_$special_is/2'(A, B)<=>'known/1_1_$special_=:=/2'(A, B). 227'test/1_1_$special_>/2'(B, A)<=>'test/1_1_$special_</2'(A, B). 228'test/1_1_$special_>=/2'(B, A)<=>'test/1_1_$special_=</2'(A, B). 229'test/1_1_$special_</2'(A, B)<=>'test/1_1_$special_,/2'(A=<B, A=\=B). 230'test/1_1_$special_is/2'(A, B)<=>'test/1_1_$special_=:=/2'(A, B). 231'known/1_1_$special_==/2'(A, B)==>number(A)|'known/1_1_$special_=:=/2'(A, B). 232'known/1_1_$special_==/2'(B, A)==>number(A)|'known/1_1_$special_=:=/2'(B, A). 233'known/1_1_$special_\\==/2'(A, B)==>number(A)|'known/1_1_$special_=\\=/2'(A, B). 234'known/1_1_$special_\\==/2'(B, A)==>number(A)|'known/1_1_$special_=\\=/2'(B, A). 235'known/1_1_$special_fail/0'\'known/1_1_$special_;/2'(_, _)<=>true. 236'known/1_1_$special_fail/0'\'known/1_1_$special_nonvar/1'(_)<=>true. 237'known/1_1_$special_fail/0'\'known/1_1_$special_var/1'(_)<=>true. 238'known/1_1_$special_fail/0'\'known/1_1_$special_atom/1'(_)<=>true. 239'known/1_1_$special_fail/0'\'known/1_1_$special_atomic/1'(_)<=>true. 240'known/1_1_$special_fail/0'\'known/1_1_$special_compound/1'(_)<=>true. 241'known/1_1_$special_fail/0'\'known/1_1_$special_ground/1'(_)<=>true. 242'known/1_1_$special_fail/0'\'known/1_1_$special_integer/1'(_)<=>true. 243'known/1_1_$special_fail/0'\'known/1_1_$special_float/1'(_)<=>true. 244'known/1_1_$special_fail/0'\'known/1_1_$special_number/1'(_)<=>true. 245'known/1_1_$special_fail/0'\'known/1_1_$special_=\\=/2'(_, _)<=>true. 246'known/1_1_$special_fail/0'\'known/1_1_$special_\\+/1'(_)<=>true. 247'known/1_1_$special_fail/0'\'known/1_1_$special_functor/3'(_, _, _)<=>true. 248'known/1_1_$special_fail/0'\'known/1_1_$special_\\=/2'(_, _)<=>true. 249'known/1_1_$special_fail/0'\'known/1_1_$special_=/2'(_, _)<=>true. 250'known/1_1_$special_fail/0'\'known/1_1_$special_,/2'(_, _)<=>true. 251'known/1_1_$special_fail/0'\'known/1_1_$special_\\==/2'(_, _)<=>true. 252'known/1_1_$special_fail/0'\'known/1_1_$special_==/2'(_, _)<=>true. 253'known/1_1_$special_fail/0'\'known/1_1_$special_is/2'(_, _)<=>true. 254'known/1_1_$special_fail/0'\'known/1_1_$special_</2'(_, _)<=>true. 255'known/1_1_$special_fail/0'\'known/1_1_$special_>=/2'(_, _)<=>true. 256'known/1_1_$special_fail/0'\'known/1_1_$special_>/2'(_, _)<=>true. 257'known/1_1_$special_fail/0'\'known/1_1_$special_=</2'(_, _)<=>true. 258'known/1_1_$special_fail/0'\'known/1_1_$special_=:=/2'(_, _)<=>true. 259'known/1_1_$special_fail/0'\'known/1_1_$special_fail/0'<=>true. 260'known/1_1_$special_fail/0'\'known/1_1_$default'(_)<=>true. 261'known/1_1_$special_,/2'(A, B)<=>known(A), known(B). 262'known/1_1_$special_=:=/2'(A, A)<=>true. 263'known/1_1_$special_==/2'(A, A)<=>true. 264'known/1_1_$special_=</2'(A, A)<=>true. 265'known/1_1_$special_=/2'(A, A)<=>true. 266'known/1_1_$special_=/2'(A, B)<=>var(A)|A=B. 267'known/1_1_$special_=/2'(B, A)<=>var(A)|B=A. 268'known/1_1_$special_\\=/2'(A, B)<=>ground(A), ground(B), A=B|'known/1_1_$special_fail/0'. 269variables(E), 'known/1_1_$special_functor/3'(A, B, C)<=>var(A), ground(B), ground(C)|functor(A, B, C), A=..[_|D], append(D, E, F), variables(F). 270'known/1_1_$special_functor/3'(A, B, C)<=>nonvar(A), \+functor(A, B, C)|'known/1_1_$special_fail/0'. 271'known/1_1_$special_\\+/1'(functor(A, B, C))<=>nonvar(A), functor(A, B, C)|'known/1_1_$special_fail/0'. 272'known/1_1_$special_functor/3'(A, B, C), 'known/1_1_$special_functor/3'(A, D, E)<=>nonvar(B), nonvar(C), nonvar(D), nonvar(E)|'known/1_1_$special_fail/0'. 273'known/1_1_$special_\\=/2'(A, A)<=>'known/1_1_$special_fail/0'. 274'known/1_1_$special_=/2'(A, B)<=>nonvar(A), nonvar(B), functor(A, C, D)|functor(B, C, D), A=B->true;'known/1_1_$special_fail/0'. 275'known/1_1_$special_\\=/2'(A, B)<=>var(A), nonvar(B), functor(B, D, C), C>0|length(E, C), B=..[D|F], G=..[D|E], add_args_nunif(F, E, H), I= (\+functor(A, D, C);A=G, H), known(I). 276'known/1_1_$special_\\=/2'(A, B)<=>nonvar(A), nonvar(B), functor(A, C, D)|functor(B, C, D)->A=..[C|E], B=..[C|F], add_args_nunif(E, F, G), known(G);true. 277'known/1_1_$special_\\=/2'(B, A)==>'known/1_1_$special_\\=/2'(A, B). 278'known/1_1_$special_=</2'(A, B)<=>number(A), number(B), A>B|'known/1_1_$special_fail/0'. 279'known/1_1_$special_=</2'(A, B)\'known/1_1_$special_=</2'(A, C)<=>number(B), number(C), B=<C|true. 280'known/1_1_$special_=</2'(C, A)\'known/1_1_$special_=</2'(B, A)<=>number(B), number(C), B=<C|true. 281'known/1_1_$special_=</2'(B, A), 'known/1_1_$special_=</2'(A, B)<=>'known/1_1_$special_=:=/2'(B, A). 282'known/1_1_$special_=</2'(B, A), 'known/1_1_$special_=</2'(A, C)==>'known/1_1_$special_=</2'(B, C). 283'known/1_1_$special_=</2'(A, B), 'known/1_1_$special_=\\=/2'(A, B), 'known/1_1_$special_=</2'(B, C), 'known/1_1_$special_=\\=/2'(B, C)==>'known/1_1_$special_=\\=/2'(A, C). 284'known/1_1_$special_=:=/2'(A, B)<=>number(A), number(B), A=\=B|'known/1_1_$special_fail/0'. 285'known/1_1_$special_=\\=/2'(A, B)<=>number(A), number(B), A=:=B|'known/1_1_$special_fail/0'. 286'known/1_1_$special_=\\=/2'(A, A)<=>'known/1_1_$special_fail/0'. 287'known/1_1_$special_=:=/2'(A, B), 'known/1_1_$special_=\\=/2'(A, B)<=>'known/1_1_$special_fail/0'. 288'known/1_1_$special_=:=/2'(B, A), 'known/1_1_$special_=:=/2'(A, C)==>B\==C|'known/1_1_$special_=:=/2'(B, C). 289'known/1_1_$special_=:=/2'(B, A)==>'known/1_1_$special_=:=/2'(A, B). 290'known/1_1_$special_=\\=/2'(B, A)==>'known/1_1_$special_=\\=/2'(A, B). 291'known/1_1_$special_number/1'(A)<=>nonvar(A), \+number(A)|'known/1_1_$special_fail/0'. 292'known/1_1_$special_float/1'(A)<=>nonvar(A), \+float(A)|'known/1_1_$special_fail/0'. 293'known/1_1_$special_integer/1'(A)<=>nonvar(A), \+integer(A)|'known/1_1_$special_fail/0'. 294'known/1_1_$special_integer/1'(A)==>'known/1_1_$special_number/1'(A). 295'known/1_1_$special_float/1'(A)==>'known/1_1_$special_number/1'(A). 296'known/1_1_$special_;/2'(A, B), 'known/1_1_$special_\\+/1'((A;B))<=>'known/1_1_$special_fail/0'. 297'known/1_1_$special_nonvar/1'(A), 'known/1_1_$special_\\+/1'(nonvar(A))<=>'known/1_1_$special_fail/0'. 298'known/1_1_$special_var/1'(A), 'known/1_1_$special_\\+/1'(var(A))<=>'known/1_1_$special_fail/0'. 299'known/1_1_$special_atom/1'(A), 'known/1_1_$special_\\+/1'(atom(A))<=>'known/1_1_$special_fail/0'. 300'known/1_1_$special_atomic/1'(A), 'known/1_1_$special_\\+/1'(atomic(A))<=>'known/1_1_$special_fail/0'. 301'known/1_1_$special_compound/1'(A), 'known/1_1_$special_\\+/1'(compound(A))<=>'known/1_1_$special_fail/0'. 302'known/1_1_$special_ground/1'(A), 'known/1_1_$special_\\+/1'(ground(A))<=>'known/1_1_$special_fail/0'. 303'known/1_1_$special_integer/1'(A), 'known/1_1_$special_\\+/1'(integer(A))<=>'known/1_1_$special_fail/0'. 304'known/1_1_$special_float/1'(A), 'known/1_1_$special_\\+/1'(float(A))<=>'known/1_1_$special_fail/0'. 305'known/1_1_$special_number/1'(A), 'known/1_1_$special_\\+/1'(number(A))<=>'known/1_1_$special_fail/0'. 306'known/1_1_$special_=\\=/2'(A, B), 'known/1_1_$special_\\+/1'(A=\=B)<=>'known/1_1_$special_fail/0'. 307'known/1_1_$special_\\+/1'(A), 'known/1_1_$special_\\+/1'(\+A)<=>'known/1_1_$special_fail/0'. 308'known/1_1_$special_functor/3'(A, B, C), 'known/1_1_$special_\\+/1'(functor(A, B, C))<=>'known/1_1_$special_fail/0'. 309'known/1_1_$special_\\=/2'(A, B), 'known/1_1_$special_\\+/1'(A\=B)<=>'known/1_1_$special_fail/0'. 310'known/1_1_$special_=/2'(A, B), 'known/1_1_$special_\\+/1'(A=B)<=>'known/1_1_$special_fail/0'. 311'known/1_1_$special_,/2'(A, B), 'known/1_1_$special_\\+/1'((A, B))<=>'known/1_1_$special_fail/0'. 312'known/1_1_$special_\\==/2'(A, B), 'known/1_1_$special_\\+/1'(A\==B)<=>'known/1_1_$special_fail/0'. 313'known/1_1_$special_==/2'(A, B), 'known/1_1_$special_\\+/1'(A==B)<=>'known/1_1_$special_fail/0'. 314'known/1_1_$special_is/2'(A, B), 'known/1_1_$special_\\+/1'(A is B)<=>'known/1_1_$special_fail/0'. 315'known/1_1_$special_</2'(A, B), 'known/1_1_$special_\\+/1'(A<B)<=>'known/1_1_$special_fail/0'. 316'known/1_1_$special_>=/2'(A, B), 'known/1_1_$special_\\+/1'(A>=B)<=>'known/1_1_$special_fail/0'. 317'known/1_1_$special_>/2'(A, B), 'known/1_1_$special_\\+/1'(A>B)<=>'known/1_1_$special_fail/0'. 318'known/1_1_$special_=</2'(A, B), 'known/1_1_$special_\\+/1'(A=<B)<=>'known/1_1_$special_fail/0'. 319'known/1_1_$special_=:=/2'(A, B), 'known/1_1_$special_\\+/1'(A=:=B)<=>'known/1_1_$special_fail/0'. 320'known/1_1_$special_fail/0', 'known/1_1_$special_\\+/1'(fail)<=>'known/1_1_$special_fail/0'. 321'known/1_1_$default'(A), 'known/1_1_$special_\\+/1'(A)<=>'known/1_1_$special_fail/0'. 322'known/1_1_$special_\\==/2'(A, B), 'known/1_1_$special_==/2'(A, B)<=>'known/1_1_$special_fail/0'. 323'known/1_1_$special_==/2'(B, A), 'known/1_1_$special_==/2'(A, C)==>'known/1_1_$special_==/2'(B, C). 324'known/1_1_$special_==/2'(B, A), 'known/1_1_$special_\\==/2'(A, C)==>'known/1_1_$special_\\==/2'(B, C). 325'known/1_1_$special_==/2'(B, A)==>'known/1_1_$special_==/2'(A, B). 326'known/1_1_$special_\\==/2'(B, A)==>'known/1_1_$special_\\==/2'(A, B). 327'known/1_1_$special_\\==/2'(A, A)==>'known/1_1_$special_fail/0'. 328'known/1_1_$special_\\==/2'(A, B)<=>nonvar(A), nonvar(B), functor(A, C, D)|functor(B, C, D)->A=..[C|E], B=..[C|F], add_args_nmatch(E, F, G), known(G);true. 329'known/1_1_$special_==/2'(A, B)==>'known/1_1_$special_=/2'(A, B). 330'known/1_1_$special_ground/1'(A)==>'known/1_1_$special_nonvar/1'(A). 331'known/1_1_$special_compound/1'(A)==>'known/1_1_$special_nonvar/1'(A). 332'known/1_1_$special_atomic/1'(A)==>'known/1_1_$special_nonvar/1'(A). 333'known/1_1_$special_number/1'(A)==>'known/1_1_$special_nonvar/1'(A). 334'known/1_1_$special_atom/1'(A)==>'known/1_1_$special_nonvar/1'(A). 335'known/1_1_$special_var/1'(A), 'known/1_1_$special_nonvar/1'(A)<=>'known/1_1_$special_fail/0'. 336'known/1_1_$special_;/2'(A, B)\'known/1_1_$special_;/2'(\+ (A;B), C)<=>known(C). 337'known/1_1_$special_nonvar/1'(A)\'known/1_1_$special_;/2'(\+nonvar(A), B)<=>known(B). 338'known/1_1_$special_var/1'(A)\'known/1_1_$special_;/2'(\+var(A), B)<=>known(B). 339'known/1_1_$special_atom/1'(A)\'known/1_1_$special_;/2'(\+atom(A), B)<=>known(B). 340'known/1_1_$special_atomic/1'(A)\'known/1_1_$special_;/2'(\+atomic(A), B)<=>known(B). 341'known/1_1_$special_compound/1'(A)\'known/1_1_$special_;/2'(\+compound(A), B)<=>known(B). 342'known/1_1_$special_ground/1'(A)\'known/1_1_$special_;/2'(\+ground(A), B)<=>known(B). 343'known/1_1_$special_integer/1'(A)\'known/1_1_$special_;/2'(\+integer(A), B)<=>known(B). 344'known/1_1_$special_float/1'(A)\'known/1_1_$special_;/2'(\+float(A), B)<=>known(B). 345'known/1_1_$special_number/1'(A)\'known/1_1_$special_;/2'(\+number(A), B)<=>known(B). 346'known/1_1_$special_=\\=/2'(A, B)\'known/1_1_$special_;/2'(\+A=\=B, C)<=>known(C). 347'known/1_1_$special_\\+/1'(A)\'known/1_1_$special_;/2'(\+ \+A, B)<=>known(B). 348'known/1_1_$special_functor/3'(A, B, C)\'known/1_1_$special_;/2'(\+functor(A, B, C), D)<=>known(D). 349'known/1_1_$special_\\=/2'(A, B)\'known/1_1_$special_;/2'(\+A\=B, C)<=>known(C). 350'known/1_1_$special_=/2'(A, B)\'known/1_1_$special_;/2'(\+A=B, C)<=>known(C). 351'known/1_1_$special_,/2'(A, B)\'known/1_1_$special_;/2'(\+ (A, B), C)<=>known(C). 352'known/1_1_$special_\\==/2'(A, B)\'known/1_1_$special_;/2'(\+A\==B, C)<=>known(C). 353'known/1_1_$special_==/2'(A, B)\'known/1_1_$special_;/2'(\+A==B, C)<=>known(C). 354'known/1_1_$special_is/2'(A, B)\'known/1_1_$special_;/2'(\+A is B, C)<=>known(C). 355'known/1_1_$special_</2'(A, B)\'known/1_1_$special_;/2'(\+A<B, C)<=>known(C). 356'known/1_1_$special_>=/2'(A, B)\'known/1_1_$special_;/2'(\+A>=B, C)<=>known(C). 357'known/1_1_$special_>/2'(A, B)\'known/1_1_$special_;/2'(\+A>B, C)<=>known(C). 358'known/1_1_$special_=</2'(A, B)\'known/1_1_$special_;/2'(\+A=<B, C)<=>known(C). 359'known/1_1_$special_=:=/2'(A, B)\'known/1_1_$special_;/2'(\+A=:=B, C)<=>known(C). 360'known/1_1_$special_fail/0'\'known/1_1_$special_;/2'(\+fail, A)<=>known(A). 361'known/1_1_$default'(A)\'known/1_1_$special_;/2'(\+A, B)<=>known(B). 362'known/1_1_$special_;/2'(A, B)\'known/1_1_$special_;/2'((\+ (A;B), _), C)<=>known(C). 363'known/1_1_$special_nonvar/1'(A)\'known/1_1_$special_;/2'((\+nonvar(A), _), B)<=>known(B). 364'known/1_1_$special_var/1'(A)\'known/1_1_$special_;/2'((\+var(A), _), B)<=>known(B). 365'known/1_1_$special_atom/1'(A)\'known/1_1_$special_;/2'((\+atom(A), _), B)<=>known(B). 366'known/1_1_$special_atomic/1'(A)\'known/1_1_$special_;/2'((\+atomic(A), _), B)<=>known(B). 367'known/1_1_$special_compound/1'(A)\'known/1_1_$special_;/2'((\+compound(A), _), B)<=>known(B). 368'known/1_1_$special_ground/1'(A)\'known/1_1_$special_;/2'((\+ground(A), _), B)<=>known(B). 369'known/1_1_$special_integer/1'(A)\'known/1_1_$special_;/2'((\+integer(A), _), B)<=>known(B). 370'known/1_1_$special_float/1'(A)\'known/1_1_$special_;/2'((\+float(A), _), B)<=>known(B). 371'known/1_1_$special_number/1'(A)\'known/1_1_$special_;/2'((\+number(A), _), B)<=>known(B). 372'known/1_1_$special_=\\=/2'(A, B)\'known/1_1_$special_;/2'((\+A=\=B, _), C)<=>known(C). 373'known/1_1_$special_\\+/1'(A)\'known/1_1_$special_;/2'((\+ \+A, _), B)<=>known(B). 374'known/1_1_$special_functor/3'(A, B, C)\'known/1_1_$special_;/2'((\+functor(A, B, C), _), D)<=>known(D). 375'known/1_1_$special_\\=/2'(A, B)\'known/1_1_$special_;/2'((\+A\=B, _), C)<=>known(C). 376'known/1_1_$special_=/2'(A, B)\'known/1_1_$special_;/2'((\+A=B, _), C)<=>known(C). 377'known/1_1_$special_,/2'(A, B)\'known/1_1_$special_;/2'((\+ (A, B), _), C)<=>known(C). 378'known/1_1_$special_\\==/2'(A, B)\'known/1_1_$special_;/2'((\+A\==B, _), C)<=>known(C). 379'known/1_1_$special_==/2'(A, B)\'known/1_1_$special_;/2'((\+A==B, _), C)<=>known(C). 380'known/1_1_$special_is/2'(A, B)\'known/1_1_$special_;/2'((\+A is B, _), C)<=>known(C). 381'known/1_1_$special_</2'(A, B)\'known/1_1_$special_;/2'((\+A<B, _), C)<=>known(C). 382'known/1_1_$special_>=/2'(A, B)\'known/1_1_$special_;/2'((\+A>=B, _), C)<=>known(C). 383'known/1_1_$special_>/2'(A, B)\'known/1_1_$special_;/2'((\+A>B, _), C)<=>known(C). 384'known/1_1_$special_=</2'(A, B)\'known/1_1_$special_;/2'((\+A=<B, _), C)<=>known(C). 385'known/1_1_$special_=:=/2'(A, B)\'known/1_1_$special_;/2'((\+A=:=B, _), C)<=>known(C). 386'known/1_1_$special_fail/0'\'known/1_1_$special_;/2'((\+fail, _), A)<=>known(A). 387'known/1_1_$default'(A)\'known/1_1_$special_;/2'((\+A, _), B)<=>known(B). 388'known/1_1_$special_\\+/1'(A)\'known/1_1_$special_;/2'(A, B)<=>known(B). 389'known/1_1_$special_\\+/1'(A)\'known/1_1_$special_;/2'((A, _), B)<=>known(B). 390'known/1_1_$special_;/2'(fail, A)<=>known(A). 391'known/1_1_$special_;/2'(A, fail)<=>known(A). 392'known/1_1_$special_;/2'(true, _)<=>true. 393'known/1_1_$special_;/2'(_, true)<=>true. 394'known/1_1_$special_functor/3'(A, _, _)\'known/1_1_$special_;/2'(\+functor(A, _, _), _)<=>true. 395'known/1_1_$special_;/2'(\+functor(A, B, C), D)<=>nonvar(A), functor(A, B, C)|known(D). 396'known/1_1_$special_;/2'(\+functor(A, B, C), _)<=>nonvar(A), \+functor(A, B, C)|true. 397'test/1_1_$special_;/2'(fail, A)<=>test(A). 398'test/1_1_$special_;/2'(A, fail)<=>test(A). 399% 'test/1_1_$special_=/2'(A, B)<=>A=B|A=B. 400'test/1_1_$special_=/2'(A, B)<=>ground(A), ground(B)|A=B. 401% 'test/1_1_$special_=/2'(A, B)<=>nonvar(A), var(B)|'test/1_1_$special_=/2'(B, A). 402% variables(F)\'test/1_1_$special_=/2'(A, B)<=>var(A), nonvar(B), functor(B, D, C), C>0, B=..[D|E], \+all_unique_vars(E, F)|G= (functor(A, D, C), A=B), test(G). 403 404% variables(F) \ 'test/1_1_$special_=/2'(A, B) <=> 405% var(A), 406% nonvar(B), 407% \+ memberchk_eq(A,F), 408% functor(B, C, D), 409% B=..[C|_] 410% | 411% E=functor(A, C, D), 412% test(E). 413% 'test/1_1_$special_=/2'(A, B)<=>nonvar(A), nonvar(B), functor(B, C, D), B=..[C|F]|functor(A, C, D), A=..[C|E], add_args_unif(E, F, G), test(G). 414variables(D)\'test/1_1_$special_functor/3'(A, B, C)<=>var(A), ground(B), ground(C), \+memberchk_eq(A, D)|functor(A, B, C). 415'test/1_1_$special_true/0'<=>true. 416'test/1_1_$special_==/2'(A, B)<=>A==B|true. 417'test/1_1_$special_=:=/2'(A, B)<=>A==B|true. 418'test/1_1_$special_=</2'(A, B)<=>A==B|true. 419'test/1_1_$special_=</2'(A, B)<=>ground(A), ground(B), A=<B|true. 420'test/1_1_$special_=</2'(A, B)<=>ground(A), ground(B), A>B|fail. 421'test/1_1_$special_=:=/2'(A, B)<=>ground(A), ground(B), A=:=B|true. 422'test/1_1_$special_=:=/2'(A, B)<=>ground(A), ground(B), A=\=B|fail. 423'test/1_1_$special_=\\=/2'(A, B)<=>ground(A), ground(B), A=\=B|true. 424'test/1_1_$special_=\\=/2'(A, B)<=>ground(A), ground(B), A=:=B|fail. 425'test/1_1_$special_functor/3'(A, B, C)<=>nonvar(A), functor(A, B, C)|true. 426'test/1_1_$special_functor/3'(A, _, _)<=>nonvar(A)|fail. 427'test/1_1_$special_ground/1'(A)<=>ground(A)|true. 428'test/1_1_$special_number/1'(A)<=>number(A)|true. 429'test/1_1_$special_float/1'(A)<=>float(A)|true. 430'test/1_1_$special_integer/1'(A)<=>integer(A)|true. 431'test/1_1_$special_number/1'(A)<=>nonvar(A)|fail. 432'test/1_1_$special_float/1'(A)<=>nonvar(A)|fail. 433'test/1_1_$special_integer/1'(A)<=>nonvar(A)|fail. 434'test/1_1_$special_\\+/1'(functor(A, B, C))<=>nonvar(A), functor(A, B, C)|fail. 435'test/1_1_$special_\\+/1'(functor(A, _, _))<=>nonvar(A)|true. 436'test/1_1_$special_\\+/1'(ground(A))<=>ground(A)|fail. 437'test/1_1_$special_\\+/1'(number(A))<=>number(A)|fail. 438'test/1_1_$special_\\+/1'(float(A))<=>float(A)|fail. 439'test/1_1_$special_\\+/1'(integer(A))<=>integer(A)|fail. 440'test/1_1_$special_\\+/1'(number(A))<=>nonvar(A)|true. 441'test/1_1_$special_\\+/1'(float(A))<=>nonvar(A)|true. 442'test/1_1_$special_\\+/1'(integer(A))<=>nonvar(A)|true. 443'test/1_1_$special_,/2'(A, B)<=>test(A), known(A), test(B). 444'test/1_1_$special_;/2'(A, B)<=>true|negate_b(A, D), negate_b(B, C), (known(C), test(A);known(D), test(B)). 445'test/1_1_$special_,/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, (B, C)), !, negate_b(A, D), known(D), \+try(E, (B, C)). 446'test/1_1_$special_\\+/1'(B), 'known/1_1_$special_;/2'(A, D)<=>true|\+try(A, \+B), !, negate_b(A, C), known(C), \+try(D, \+B). 447'test/1_1_$special_integer/1'(B), 'known/1_1_$special_;/2'(A, D)<=>true|\+try(A, integer(B)), !, negate_b(A, C), known(C), \+try(D, integer(B)). 448'test/1_1_$special_float/1'(B), 'known/1_1_$special_;/2'(A, D)<=>true|\+try(A, float(B)), !, negate_b(A, C), known(C), \+try(D, float(B)). 449'test/1_1_$special_number/1'(B), 'known/1_1_$special_;/2'(A, D)<=>true|\+try(A, number(B)), !, negate_b(A, C), known(C), \+try(D, number(B)). 450'test/1_1_$special_ground/1'(B), 'known/1_1_$special_;/2'(A, D)<=>true|\+try(A, ground(B)), !, negate_b(A, C), known(C), \+try(D, ground(B)). 451'test/1_1_$special_=:=/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B=:=C), !, negate_b(A, D), known(D), \+try(E, B=:=C). 452'test/1_1_$special_==/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B==C), !, negate_b(A, D), known(D), \+try(E, B==C). 453'test/1_1_$special_true/0', 'known/1_1_$special_;/2'(A, C)<=>true|\+try(A, true), !, negate_b(A, B), known(B), \+try(C, true). 454'test/1_1_$special_functor/3'(B, C, D), 'known/1_1_$special_;/2'(A, F)<=>true|\+try(A, functor(B, C, D)), !, negate_b(A, E), known(E), \+try(F, functor(B, C, D)). 455'test/1_1_$special_=/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B=C), !, negate_b(A, D), known(D), \+try(E, B=C). 456'test/1_1_$special_;/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, (B;C)), !, negate_b(A, D), known(D), \+try(E, (B;C)). 457'test/1_1_$special_is/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B is C), !, negate_b(A, D), known(D), \+try(E, B is C). 458'test/1_1_$special_</2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B<C), !, negate_b(A, D), known(D), \+try(E, B<C). 459'test/1_1_$special_>=/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B>=C), !, negate_b(A, D), known(D), \+try(E, B>=C). 460'test/1_1_$special_>/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B>C), !, negate_b(A, D), known(D), \+try(E, B>C). 461'test/1_1_$special_=\\=/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B=\=C), !, negate_b(A, D), known(D), \+try(E, B=\=C). 462'test/1_1_$special_=</2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B=<C), !, negate_b(A, D), known(D), \+try(E, B=<C). 463'test/1_1_$special_\\==/2'(B, C), 'known/1_1_$special_;/2'(A, E)<=>true|\+try(A, B\==C), !, negate_b(A, D), known(D), \+try(E, B\==C). 464'test/1_1_$default'(B), 'known/1_1_$special_;/2'(A, D)<=>true|\+try(A, B), !, negate_b(A, C), known(C), \+try(D, B). 465'test/1_1_$special_,/2'(_, _)<=>fail. 466'test/1_1_$special_\\+/1'(_)<=>fail. 467'test/1_1_$special_integer/1'(_)<=>fail. 468'test/1_1_$special_float/1'(_)<=>fail. 469'test/1_1_$special_number/1'(_)<=>fail. 470'test/1_1_$special_ground/1'(_)<=>fail. 471'test/1_1_$special_=:=/2'(_, _)<=>fail. 472'test/1_1_$special_==/2'(_, _)<=>fail. 473'test/1_1_$special_true/0'<=>fail. 474'test/1_1_$special_functor/3'(_, _, _)<=>fail. 475'test/1_1_$special_=/2'(_, _)<=>fail. 476'test/1_1_$special_;/2'(_, _)<=>fail. 477'test/1_1_$special_is/2'(_, _)<=>fail. 478'test/1_1_$special_</2'(_, _)<=>fail. 479'test/1_1_$special_>=/2'(_, _)<=>fail. 480'test/1_1_$special_>/2'(_, _)<=>fail. 481'test/1_1_$special_=\\=/2'(_, _)<=>fail. 482'test/1_1_$special_=</2'(_, _)<=>fail. 483'test/1_1_$special_\\==/2'(_, _)<=>fail. 484'test/1_1_$default'(_)<=>fail. 485cleanup\'known/1_1_$special_;/2'(_, _)<=>true. 486cleanup\'known/1_1_$special_nonvar/1'(_)<=>true. 487cleanup\'known/1_1_$special_var/1'(_)<=>true. 488cleanup\'known/1_1_$special_atom/1'(_)<=>true. 489cleanup\'known/1_1_$special_atomic/1'(_)<=>true. 490cleanup\'known/1_1_$special_compound/1'(_)<=>true. 491cleanup\'known/1_1_$special_ground/1'(_)<=>true. 492cleanup\'known/1_1_$special_integer/1'(_)<=>true. 493cleanup\'known/1_1_$special_float/1'(_)<=>true. 494cleanup\'known/1_1_$special_number/1'(_)<=>true. 495cleanup\'known/1_1_$special_=\\=/2'(_, _)<=>true. 496cleanup\'known/1_1_$special_\\+/1'(_)<=>true. 497cleanup\'known/1_1_$special_functor/3'(_, _, _)<=>true. 498cleanup\'known/1_1_$special_\\=/2'(_, _)<=>true. 499cleanup\'known/1_1_$special_=/2'(_, _)<=>true. 500cleanup\'known/1_1_$special_,/2'(_, _)<=>true. 501cleanup\'known/1_1_$special_\\==/2'(_, _)<=>true. 502cleanup\'known/1_1_$special_==/2'(_, _)<=>true. 503cleanup\'known/1_1_$special_is/2'(_, _)<=>true. 504cleanup\'known/1_1_$special_</2'(_, _)<=>true. 505cleanup\'known/1_1_$special_>=/2'(_, _)<=>true. 506cleanup\'known/1_1_$special_>/2'(_, _)<=>true. 507cleanup\'known/1_1_$special_=</2'(_, _)<=>true. 508cleanup\'known/1_1_$special_=:=/2'(_, _)<=>true. 509cleanup\'known/1_1_$special_fail/0'<=>true. 510cleanup\'known/1_1_$default'(_)<=>true. 511cleanup\variables(_)<=>true. 512cleanup<=>true. 513