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 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.
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.