On program synthesis knowledge