# Logical programming

Logical programming ( predictive programming ) is a programming paradigm based on mathematical logic . In contrast to imperative programming , a logic program does not consist of a sequence of instructions, but of a set of axioms , which are to be understood here as a collection of facts or assumptions. If the user of a logic program makes a request, the interpreter tries to calculate the solution statement from the axioms alone.

For this purpose, a set of so-called rules and instructions, which are structured according to the syntax, are inserted into the program code together with information about which solution method is intended. Logical programming languages ​​are among the declarative programming languages and have their origins in the research field of artificial intelligence .

An imperative program describes exactly how and in what order a problem is to be solved. In contrast, a logic-based program describes what applies. The how is given by the solution method. The solution is made to the rules derived .

The most popular logical programming language is Prolog . Alain Colmerauer and Robert Kowalski were among the founders of logical programming in the 1970s .

## Explanations

The syntax indicates how rules must be written in order for the computer to use them. Rules are if-then statements and facts that describe the knowledge of a problem area. There are also special constructs to influence the solution method. The best known is the backward cut in Prolog. B. Exception rules can be modeled.

A rule-based program can be asked questions (English query ) by setting a goal (English goal ).

The solving method dictates how the inference engine interprets the rules to answer the question. Prolog is a depth-first search (engl. Depth first ) with unification and backtracking used. Other methods are also suitable and are also used depending on the application.

## example

This example is written in natural language to illustrate the principle.

Facts:

Lucia is the mother of Minna.
Lucia is the mother of Klaus.

Rule:

If X is the mother of Y and Y is the mother of Z Then X is the grandmother of Z.

Question / goal:

Answer of the computer, conclusion from the facts and rules:

Lucia

## Areas of application

Typical areas of application are simulators, generators and systems for diagnosis and prognosis. Applications of logic programming can be found in the following areas:

Examples outside of computer science:

In the field of informatics and computer technology: