functional programs reasoning 4883155