เหตุผลเชิงตรรกะกับการเขียนโปรแกรม