úÎ      # !"#$%printEnv6 prints a single solution, showing only the variables + that were introduced in the original goal        The main? program prompt for a file with Prolog rules and call the main  interpreter loop D ask for a goal, and enuartes all solutions found, each preceded by = a trace conatining the rules applied in a tree-like fashion 2 takes the result of a treewalk, which constructs 1 all the proofs, and pairs them with their final D substitutions. Alternative approaches in printing are to print the B raw proofs, i.e. without applying the final substitution (remove  the  subst env5 ). This nicely shows how the intermediate variables ? come into life. By including the test on the length the facts B directly stemming from the data base are not printed. This makes 3 the proofs much shorter, but a bit less complete. &      !"#$%&'(NanoProlog-0.2.3.2%Language.Prolog.NanoProlog.NanoProlog&Language.Prolog.NanoProlog.InterpreterSubstsubstResult ApplyRulesDoneEnvfromEnvTaggabletagRule:<-:TermFunVarTag LowerCase UpperCaseemptyEnvmatchesunifysolveenumerateDepthFirst startParsepTermpFunpRulepTermsrunloopprintSolutionsProofs TaggedTerm showCommaspSepDotpFactorpVar $fShowEnv