3122
#hash(((form ((lib "racklog/main.rkt") %let)) . ((1097 . 4))) ((def ((lib "racklog/main.rkt") %<)) . ((1953 . 4))) ((def ((lib "racklog/main.rkt") %=)) . ((1511 . 4))) ((form ((lib "racklog/main.rkt") %and)) . ((1275 . 4))) ((def ((lib "racklog/main.rkt") atom?)) . ((116 . 3))) ((def ((lib "racklog/main.rkt") %bag-of-1)) . ((2941 . 5))) ((def ((lib "racklog/main.rkt") %freeze)) . ((3347 . 4))) ((def ((lib "racklog/main.rkt") %compound)) . ((3122 . 3))) ((def ((lib "racklog/main.rkt") %melt)) . ((3427 . 4))) ((def ((lib "racklog/main.rkt") compound?)) . ((229 . 3))) ((def ((lib "racklog/main.rkt") %empty-rel)) . ((799 . 3))) ((form ((lib "racklog/main.rkt") !)) . ((1188 . 2))) ((def ((lib "racklog/main.rkt") %bag-of)) . ((2837 . 5))) ((def ((lib "racklog/main.rkt") %if-then-else)) . ((1407 . 5))) ((def ((lib "racklog/main.rkt") %nonvar)) . ((3291 . 3))) ((def ((lib "racklog/main.rkt") %=/=)) . ((2112 . 4))) ((form ((lib "racklog/main.rkt") %or)) . ((1317 . 4))) ((def ((lib "racklog/main.rkt") %==)) . ((1670 . 4))) ((form ((lib "racklog/main.rkt") %cut-delimiter)) . ((1157 . 2))) ((def ((lib "racklog/main.rkt") use-occurs-check?)) . ((1852 . 4))) ((form ((lib "racklog/main.rkt") %which)) . ((479 . 5))) ((def ((lib "racklog/main.rkt") %constant)) . ((3180 . 3))) ((def ((lib "racklog/main.rkt") %melt-new)) . ((3505 . 4))) ((def ((lib "racklog/main.rkt") compound-struct?)) . ((167 . 3))) ((form ((lib "racklog/main.rkt") %assert!)) . ((863 . 5))) ((def ((lib "racklog/main.rkt") goal/c)) . ((452 . 2))) ((def ((lib "racklog/main.rkt") answer?)) . ((399 . 3))) ((def ((lib "racklog/main.rkt") %set-of-1)) . ((2731 . 5))) ((def ((lib "racklog/main.rkt") %more)) . ((555 . 2))) ((form ((lib "racklog/main.rkt") %is)) . ((1831 . 2))) ((def ((lib "racklog/main.rkt") %repeat)) . ((1243 . 2))) ((def ((lib "racklog/main.rkt") %<=)) . ((2032 . 4))) ((def ((lib "racklog/main.rkt") atomic-struct?)) . ((56 . 3))) ((form ((lib "racklog/main.rkt") %find-all)) . ((586 . 5))) ((def ((lib "racklog/main.rkt") %=:=)) . ((2193 . 4))) ((def ((lib "racklog/main.rkt") %true)) . ((1220 . 2))) ((def ((lib "racklog/main.rkt") unifiable?)) . ((284 . 3))) ((form ((lib "racklog/main.rkt") %assert-after!)) . ((962 . 5))) ((def ((lib "racklog/main.rkt") %var)) . ((3238 . 3))) ((form ((lib "racklog/main.rkt") %free-vars)) . ((3047 . 5))) ((def ((lib "racklog/main.rkt") %copy)) . ((3587 . 4))) ((def ((lib "racklog/main.rkt") %/=)) . ((1590 . 4))) ((def ((lib "racklog/main.rkt") %fail)) . ((1197 . 2))) ((form ((lib "racklog/main.rkt") %rel)) . ((665 . 8))) ((def ((lib "racklog/main.rkt") %set-of)) . ((2627 . 5))) ((def ((lib "racklog/main.rkt") %/==)) . ((1750 . 4))) ((def ((lib "racklog/main.rkt") logic-var?)) . ((0 . 3))) ((def ((lib "racklog/main.rkt") %append)) . ((2433 . 5))) ((def ((lib "racklog/main.rkt") _)) . ((1067 . 2))) ((def ((lib "racklog/main.rkt") %>=)) . ((2353 . 4))) ((def ((lib "racklog/main.rkt") %member)) . ((2543 . 4))) ((def ((lib "racklog/main.rkt") %>)) . ((2274 . 4))) ((def ((lib "racklog/main.rkt") answer-value?)) . ((340 . 3))) ((def ((lib "racklog/main.rkt") %not)) . ((1358 . 3))))
procedure
(logic-var? x) -> boolean?
  x : any/c
procedure
(atomic-struct? x) -> boolean?
  x : any/c
procedure
(atom? x) -> boolean?
  x : any/c
procedure
(compound-struct? x) -> boolean?
  x : any/c
procedure
(compound? x) -> boolean?
  x : any/c
procedure
(unifiable? x) -> boolean?
  x : any/c
procedure
(answer-value? x) -> boolean?
  x : any/c
procedure
(answer? x) -> boolean?
  x : any/c
value
goal/c : contract?
syntax
(%which (V ...) G ...)
 
  V : identifier?
  G : goal/c
procedure
(%more) -> answer?
syntax
(%find-all (V ...) G ...)
 
  V : identifier?
  G : goal/c
syntax
(%rel (V ...) clause ...)
 
clause = [(E ...) G ...]
 
  V : identifier?
  E : expression?
  G : goal/c
procedure
(%empty-rel E ...) -> goal/c
  E : unifiable?
syntax
(%assert! Pname (V ...) clause ...)
 
  Pname : identifier?
  V : identifier?
syntax
(%assert-after! Pname (V ...) clause ...)
 
  Pname : identifier?
  V : identifier?
procedure
(_) -> logic-var?
syntax
(%let (V ...) expr ...)
 
  V : identifier?
syntax
(%cut-delimiter . any)
syntax
!
value
%fail : goal/c
value
%true : goal/c
procedure
(%repeat) -> goal/c
syntax
(%and G ...)
 
  G : goal/c
syntax
(%or G ...)
 
  G : goal/c
procedure
(%not G) -> goal/c
  G : goal/c
procedure
(%if-then-else G1 G2 G3) -> goal/c
  G1 : goal/c
  G2 : goal/c
  G3 : goal/c
procedure
(%= E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%/= E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%== E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%/== E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
syntax
(%is E1 E2)
parameter
(use-occurs-check?) -> boolean?
(use-occurs-check? on?) -> void?
  on? : boolean?
procedure
(%< E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%<= E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%=/= E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%=:= E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%> E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%>= E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%append E1 E2 E3) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
  E3 : unifiable?
procedure
(%member E1 E2) -> goal/c
  E1 : unifiable?
  E2 : unifiable?
procedure
(%set-of E1 G E2) -> goal/c
  E1 : unifiable?
  G : goal/c
  E2 : unifiable?
procedure
(%set-of-1 E1 G E2) -> goal/c
  E1 : unifiable?
  G : goal/c
  E2 : unifiable?
procedure
(%bag-of E1 G E2) -> goal/c
  E1 : unifiable?
  G : goal/c
  E2 : unifiable?
procedure
(%bag-of-1 E1 G E2) -> goal/c
  E1 : unifiable?
  G : goal/c
  E2 : unifiable?
syntax
(%free-vars (V ...) G)
 
  V : identifier?
  G : goal/c
procedure
(%compound E) -> goal/c
  E : unifiable?
procedure
(%constant E) -> goal/c
  E : unifiable?
procedure
(%var E) -> goal/c
  E : unifiable?
procedure
(%nonvar E) -> goal/c
  E : unifiable?
procedure
(%freeze S F) -> goal/c
  S : unifiable?
  F : unifiable?
procedure
(%melt F S) -> goal/c
  F : unifiable?
  S : unifiable?
procedure
(%melt-new F S) -> goal/c
  F : unifiable?
  S : unifiable?
procedure
(%copy F S) -> goal/c
  F : unifiable?
  S : unifiable?
