# Logic programming

**Logic programming** is using mathematical logic to write computer programs. There are specialized programming languages where the user can directly enter logical statements. Probably the best-known of these languages is called Prolog. Alonzo Church used a form of logic programming in what is known as lambda calculus today. Logic programming has also been used in LISP.

Programs consist of a set of rules and facts. In most cases, logic programming uses what is called negation as failure or *weak negation:* This means that if it is not possible to derive some clause [math]p[/math] from the facts and rules, the system will assume that its negation is true.