A programação lógica é usar a lógica matemática para escrever programas de computador. Existem linguagens de programação especializadas onde o usuário pode entrar diretamente com declarações lógicas. Provavelmente a mais conhecida destas linguagens é chamada Prolog. Alonzo Church usou uma forma de programação lógica no que hoje é conhecido como cálculo lambda. A programação lógica também tem sido usada em LISP.
Os programas consistem em um conjunto de regras e fatos. Na maioria dos casos, a programação lógica usa o que se chama negação como falha ou negação fraca: Isto significa que se não for possível derivar alguma cláusula p {\displaystyle p} dos fatos e regras, o sistema assumirá que sua negação é verdadeira.