Harrop formula


In intuitionistic logic, the Harrop formulae, named after Ronald Harrop, are the class of formulae inductively defined as follows:
By excluding disjunction and existential quantification, non-constructive predicates are avoided, which has benefits for computer implementation.

Discussion

Harrop formulae are more "well-behaved" also in a constructive context. For example, in Heyting arithmetic, Harrop formulae satisfy a classical equivalence not generally satisfied in constructive logic:
But there are still -statements that are -independent, meaning these are Harrop formulae for which excluded middle is however not -provable. The standard example is the arithmetized consistency of . So
but
And a plain disjunction is never Harrop itself, in the syntactic sense. So the above is compatible with the fact that intuitionistic logic itself already proves indeed for any.
Note that Harrop formulea in the syntactic sense are equivalent to non-Harrop formulas, for example through explosion as.

Hereditary Harrop formulae and logic programming

A more complex definition of hereditary Harrop formulae is used in logic programming as a generalisation of Horn clauses, and forms the basis for the language λProlog. Hereditary Harrop formulae are defined in terms of two recursive sets of formulae. In one formulation:
  • Rigid atomic formulae, i.e. constants or formulae, are hereditary Harrop;
  • is hereditary Harrop provided and are;
  • is hereditary Harrop provided is;
  • is hereditary Harrop provided is rigidly atomic, and is a G-formula.
G-formulae are defined as follows:
  • Atomic formulae are G-formulae, including truth;
  • is a G-formula provided and are;
  • is a G-formula provided and are;
  • is a G-formula provided is;
  • is a G-formula provided is;
  • is a G-formula provided is, and is hereditary Harrop.

    History

Harrop formulae were introduced around 1956 by Ronald Harrop and independently by Helena Rasiowa. Variations of the fundamental concept are used in different branches of constructive mathematics and logic programming.