The demo includes:
TEACH (learn a rule from two examples)
COMPOSE (several learned rules used together) TRANSFER (a rule learned in algebra also works in logic and sets)
SIMPLIFY (multi step deterministic rewriting with a visible trace)
CODEMOD (teaching a codemod from two examples)
It runs on a CPU and produces a reasoning trace for every step. I would be interested to know what people think or where it breaks.
The core engine was not affected. The issue was simply that a user taught rule was visible to other demo modes, which made it fire that rule everywhere.
If anyone notices anything else strange, let me know. It should behave normally now.
The system needs multiple examples when there is more than one varying part and a single example is ambiguous. A simple example is wrapping a function call. With:
doThing(x) → log(doThing(x))
process(y) → log(process(y))
the system learns that:
the function name varies
the argument varies
he outer log(…) is constantFrom that it infers the general rule and applies it to new inputs. A single example would not be enough to disambiguate that pattern.