Harrop formula

From testwiki
Jump to navigation Jump to search

In intuitionistic logic, the Harrop formulae, named after Ronald Harrop, are the class of formulae inductively defined as follows:[1][2][3]

  • Atomic formulae are Harrop, including falsity (⊥);
  • A∧B is Harrop provided A and B are;
  • ¬F is Harrop for any well-formed formula F;
  • F→A is Harrop provided A is, and F is any well-formed formula;
  • ∀x.A is Harrop provided A is.

By excluding disjunction and existential quantification (except in the antecedent of implication), 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:[1]

¬¬A↔A.

But there are still Π1-statements that are 𝖯𝖠-independent, meaning these are Harrop formulae ∀x.A for which excluded middle is however not 𝖧𝖠-provable. The standard example is the arithmetized consistency of 𝖯𝖠 (or 𝖧𝖠-equivalently that of 𝖧𝖠). So

𝖧𝖠⊢¬¬Con(𝖧𝖠)↔Con(𝖧𝖠)

but

𝖧𝖠⊬Con(𝖧𝖠)∨¬Con(𝖧𝖠).

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 ¬¬(P∨¬P) indeed for any P.

Note that Harrop formulea in the syntactic sense are equivalent to non-Harrop formulas, for example through explosion as A↔(A∨⊥).

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 (sometimes three) recursive sets of formulae. In one formulation:[4]

  • Rigid atomic formulae, i.e. constants r or formulae r(t1,...,tn), are hereditary Harrop;
  • A∧B is hereditary Harrop provided A and B are;
  • ∀x.A is hereditary Harrop provided A is;
  • G→A is hereditary Harrop provided A is rigidly atomic, and G is a G-formula.

G-formulae are defined as follows:[4]

  • Atomic formulae are G-formulae, including truth(⊤);
  • A∧B is a G-formula provided A and B are;
  • A∨B is a G-formula provided A and B are;
  • ∀x.A is a G-formula provided A is;
  • ∃x.A is a G-formula provided A is;
  • H→A is a G-formula provided A is, and H is hereditary Harrop.

History

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

See also

References

Template:Reflist

  1. ↑ 1.0 1.1 Template:Cite book
  2. ↑ 2.0 2.1 Template:Cite book
  3. ↑ Template:Cite journal
  4. ↑ 4.0 4.1 Dov M. Gabbay, Christopher John Hogger, John Alan Robinson, Handbook of Logic in Artificial Intelligence and Logic Programming: Logic programming, Oxford University Press, 1998, p 575, Template:Isbn