!7 sS script1 = "Assert (True)."; sS script2 = "Assert (False)."; sS script = [[ Make an empty thought space X. Assert (X is empty). Add (God is good) to X. Assert (Not (X is empty)). Apply rule (Remove (God is good)) to X. Assert (X is empty). ]]; sS bla = [[ // concepts zivsiiacmvqrolto - True zqbbvhdeuzyhewed - False jamvyfwypzbptvle - Make an empty thought space X. yvmxaacduvvomgqi - X is empty rzryqdohxtczvzgn - Assert (X). ]]; // head -> voidfunc(Lisp) static new HashMap executors; static HashMap> thoughtSpaces = new HashMap; p { myTruth(bla); lispStandardEvaluators(); // Assert (X). executors.put("rzryqdohxtczvzgn", voidfunc(Lisp l) { l = l.get(0); if (!isTrue(callLispEvaluator(l))) fail("Not true: " + l); }); // Make an empty thought space X. executors.put("jamvyfwypzbptvle", voidfunc(Lisp l) { S name = l.raw(0); thoughtSpaces.put(name, new L); }); lispEvaluator("yvmxaacduvvomgqi", new F1() { Bool get(Lisp l) { S name = l.raw(0); ret isEmpty(assertNotNull(thoughtSpaces.get(name))); } }); assertScriptSucceeds(script1); assertScriptFails(script2); assertScriptSucceeds(print(xyzToNewIDs(script))); print("OK"); } svoid assertScriptSucceeds(S script) { for (Lisp cmd : linesToLisp(script)) { O executor = executors.get(cmd.head); if (executor == null) fail("No executor for " + cmd); callF(executor, cmd); } } svoid assertScriptFails(fS script) { assertFail_verbose(r { assertScriptSucceeds(script); }); }