úÎ|y"      ! "#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.3%Language.Prolog.NanoProlog.NanoProlog!Language.Prolog.NanoProlog.Parser&Language.Prolog.NanoProlog.InterpreterSubstsubstProofsResult ApplyRulesDoneEnvfromEnvTaggabletagRule:<-: TaggedTermTermFunVarTag LowerCase UpperCaseemptyEnvmatchesunifysolveenumerateDepthFirst startParsepTermpConspFunpRulepTermsrunloopprintSolutions showCommas $fShowEnvpSepDotpFactorpVar