برنامه‌نویسی منطقی و کاربردهای آن