@(heading "sicp-eval-logic") (module sicp-eval-logic @("Logic procedures from section 4.4") (add-assertion! add-assertion-body add-rule! add-rule-or-assertion! always-true apply-a-rule apply-rules args assertion-to-be-added? binding-in-frame binding-value binding-variable check-an-assertion conclusion conjoin constant-symbol? contents contract-question-mark depends-on? disjoin empty-conjunction? empty-disjunction? execute expand-question-mark extend extend-if-consistent extend-if-possible fetch-assertions fetch-rules find-assertions first-conjunct first-disjunct flatten-stream get-all-assertions get-all-rules get-indexed-assertions get-indexed-rules get-stream index-key-of indexable? input-prompt instantiate interleave-delayed make-binding make-new-variable map-over-symbols negate negated-query new-rule-application-id output-prompt pattern-match predicate qeval qeval* query-driver-loop query-syntax-process rename-variables-in rest-conjuncts rest-disjuncts rule-body rule-counter rule? simple-query singleton-stream store-assertion-in-index store-rule-in-index stream-append stream-append-delayed stream-flatmap the-assertions the-rules type unify-match use-index? var? with-empty-database with-microshaft-database) (import chicken scheme srfi-69) (use sicp sicp-eval sicp-streams) (include "sicp-eval-logic-core.scm"))