- Applied mathematics
- >
- Theoretical computer science
- >
- Logic in computer science
- >
- Logic programming

- Fields of mathematics
- >
- Mathematical logic
- >
- Logic in computer science
- >
- Logic programming

- Philosophy of mathematics
- >
- Mathematical logic
- >
- Logic in computer science
- >
- Logic programming

- Theoretical computer science
- >
- Mathematics of computing
- >
- Logic in computer science
- >
- Logic programming

Guarded Command Language

The Guarded Command Language (GCL) is a programming language defined by Edsger Dijkstra for predicate transformer semantics in EWD472. It combines programming concepts in a compact way. It makes it ea

Narrowing of algebraic value sets

Like logic programming, narrowing of algebraic value sets gives a method of reasoning about the values in unsolved or partially solved equations. Where logic programming relies on resolution, the alge

Term indexing

In computer science, a term index is a data structure to facilitate fast lookup of terms and clauses in a logic program, deductive database, or automated theorem prover.

Constraint logic programming

Constraint logic programming is a form of constraint programming, in which logic programming is extended to include concepts from constraint satisfaction. A constraint logic program is a logic program

Answer set programming

Answer set programming (ASP) is a form of declarative programming oriented towards difficult (primarily NP-hard) search problems. It is based on the stable model (answer set) semantics of logic progra

Production system (computer science)

A "production system " (or "production rule system") is a computer program typically used to provide some form of artificial intelligence, which consists primarily of a set of rules about behavior but

Coinduction

In computer science, coinduction is a technique for defining and proving properties of systems of concurrent interacting objects. Coinduction is the mathematical dual to structural induction. Coinduct

Default logic

Default logic is a non-monotonic logic proposed by Raymond Reiter to formalize reasoning with default assumptions. Default logic can express facts like “by default, something is true”; by contrast, st

Conflict resolution strategy

Conflict resolution strategies are used in production systems in artificial intelligence, such as in rule-based expert systems, to help in choosing which production rule to fire. The need for such a s

Negation as failure

Negation as failure (NAF, for short) is a non-monotonic inference rule in logic programming, used to derive (i.e. that is assumed not to hold) from failure to derive . Note that can be different from

Logic programming

Logic programming is a programming paradigm which is largely based on formal logic. Any program written in a logic programming language is a set of sentences in logical form, expressing facts and rule

Defeasible logic

Defeasible logic is a non-monotonic logic proposed by to formalize defeasible reasoning. In defeasible logic, there are three different types of propositions: strict rulesspecify that a fact is always

Substitution (logic)

Substitution is a fundamental concept in logic.A substitution is a syntactic transformation on formal expressions.To apply a substitution to an expression means to consistently replace its variable, o

Advice taker

The advice taker was a hypothetical computer program, proposed by John McCarthy in his 1959 paper "Programs with Common Sense". It was probably the first proposal to use logic to represent information

Clause (logic)

In logic, a clause is a propositional formula formed from a finite collection of literals (atoms or their negations) and logical connectives. A clause is true either whenever at least one of the liter

Definite clause grammar

A definite clause grammar (DCG) is a way of expressing grammar, either for natural or formal languages, in a logic programming language such as Prolog. It is closely related to the concept of attribut

Frame problem

In artificial intelligence, the frame problem describes an issue with using first-order logic (FOL) to express facts about a robot in the world. Representing the state of a robot with traditional FOL

Well-founded semantics

In logic programming, the well-founded semantics is one definition of how we can make conclusions from a set of logical rules. In logic programming, we give a computer a set of facts, and a set of "in

Event calculus

The event calculus is a logical language for representing and reasoning about events and their effects first presented by Robert Kowalski and in 1986. It was extended by Murray Shanahan and in the 199

Warren Abstract Machine

In 1983, David H. D. Warren designed an abstract machine for the execution of Prolog consisting of a memory architecture and an instruction set. This design became known as the Warren Abstract Machine

Circumscription (logic)

Circumscription is a non-monotonic logic created by John McCarthy to formalize the common sense assumption that things are as expected unless otherwise specified. Circumscription was later used by McC

Autoepistemic logic

The autoepistemic logic is a formal logic for the representation and reasoning of knowledge about knowledge. While propositional logic can only express facts, autoepistemic logic can express knowledge

Functional logic programming

Functional logic programming is the combination, in a single programming language, of the paradigms of functional programming and logic programming. This style of programming is embodied by various pr

Scientific community metaphor

In computer science, the scientific community metaphor is a metaphor used to aid understanding scientific communities. The first publications on the scientific community metaphor in 1981 and 1982 invo

Inductive programming

Inductive programming (IP) is a special area of automatic programming, covering research from artificial intelligence and programming, which addresses learning of typically declarative (logic or funct

Stable model semantics

The concept of a stable model, or answer set, is used to define a declarative semantics for logic programs with negation as failure. This is one of several standard approaches to the meaning of negati

Concurrent logic programming

Concurrent logic programming is a variant of logic programming in which programs are sets of guarded Horn clauses of the form: H :- G1, …, Gn | B1, …, Bn. The conjunction G1, … , Gn is called the guar

TerminusDB

TerminusDB is an open source knowledge graph and document store. It is used to build versioned data products. It is a native revision control database that is architecturally similar to Git. It is lis

Open-world assumption

In a formal system of logic used for knowledge representation, the open-world assumption is the assumption that the truth value of a statement may be true irrespective of whether or not it is known to

Focused proof

In mathematical logic, focused proofs are a family of analytic proofs that arise through goal-directed proof-search, and are a topic of study in structural proof theory and reductive logic. They form

Indeterminacy in concurrent computation

Indeterminacy in concurrent computation is concerned with the effects of indeterminacy in concurrent computation. Computation is an area in which indeterminacy is becoming increasingly important becau

Ramification problem

In philosophy and artificial intelligence (especially, knowledge based systems), the ramification problem is concerned with the indirect consequences of an action. It might also be posed as how to rep

Reasoning system

In information technology a reasoning system is a software system that generates conclusions from available knowledge using logical techniques such as deduction and induction. Reasoning systems play a

Artificial intelligence in fraud detection

Artificial intelligence is used by many different businesses and organizations. It is widely used in the financial sector, especially by accounting firms, to help detect fraud. In 2022, Pricewaterhous

Yale shooting problem

The Yale shooting problem is a conundrum or scenario in formal situational logic on which early logical solutions to the frame problem fail. The name of this problem derives from its inventors, and Dr

Cut (logic programming)

The cut, in Prolog, is a goal, written as !, which always succeeds, but cannot be backtracked. Cuts can be used to prevent unwanted backtracking, which could add unwanted solutions and/or space/time o

MiniKanren

miniKanren is a family of programming languages for relational programming. As relations are bidirectional, if miniKanren is given an expression and a desired output, miniKanren can run the expression

Concurrent constraint logic programming

Concurrent constraint logic programming is a version of constraint logic programming aimed primarily at programming concurrent processes rather than (or in addition to) solving constraint satisfaction

Closed-world assumption

The closed-world assumption (CWA), in a formal system of logic used for knowledge representation, is the presumption that a statement that is true is also known to be true. Therefore, conversely, what

BNR Prolog

BNR Prolog, also known as CLP(BNR) is a declarative constraint logic programming language based on relational interval arithmetic developed at Bell-Northern Research in the 1980s and 1990s. Embedding

Qualification problem

In philosophy and AI (especially, knowledge-based systems), the qualification problem is concerned with the impossibility of listing all the preconditions required for a real-world action to have its

Belief revision

Belief revision is the process of changing beliefs to take into account a new piece of information. The logical formalization of belief revision is researched in philosophy, in databases, and in artif

Higher-order abstract syntax

In computer science, higher-order abstract syntax (abbreviated HOAS) is a technique for the representation of abstract syntax trees for languages with variable binders.

Unification (computer science)

In logic and computer science, unification is an algorithmic process of solving equations between symbolic expressions. Depending on which expressions (also called terms) are allowed to occur in an eq

Structural synthesis of programs

Structural synthesis of programs (SSP) is a special form of (automatic) program synthesis that is based on propositional calculus. More precisely, it uses intuitionistic logic for describing the struc

CLP(R)

CLP(R) is a declarative programming language. It stands for constraint logic programming (Real) where real refers to the real numbers. It can be considered and is generally implemented as a superset o

SLD resolution

SLD resolution (Selective Linear Definite clause resolution) is the basic inference rule used in logic programming. It is a refinement of resolution, which is both sound and refutation complete for Ho

Abductive logic programming

Abductive logic programming (ALP) is a high-level knowledge-representation framework that can be used to solve problems declaratively based on abductive reasoning. It extends normal logic programming

Situation calculus

The situation calculus is a logic formalism designed for representing and reasoning about dynamical domains. It was first introduced by John McCarthy in 1963. The main version of the situational calcu

Defeasible reasoning

In philosophical logic, defeasible reasoning is a kind of reasoning that is rationally compelling, though not deductively valid. It usually occurs when a rule is given, but there may be specific excep

Occurs check

In computer science, the occurs check is a part of algorithms for syntactic unification. It causes unification of a variable V and a structure S to fail if S contains V.

Dis-unification (computer science)

Dis-unification, in computer science and logic, is an algorithmic process of solving inequations between symbolic expressions.

© 2023 Useful Links.