Een hoornclausule is een logische loskoppeling van geletterdheid, waarbij hooguit één van de geletterdheid positief is, en alle andere negatief. Het is vernoemd naar Alfred Horn die ze in 1951 in een artikel beschreef.

Een hoornclausule met precies één positieve letter is een definitieve clausule; een definitieve clausule zonder negatieve letters wordt soms een "feit" genoemd; en een hoornclausule zonder positieve letter wordt soms een doelclausule genoemd. Deze drie soorten hoornclausules worden geïllustreerd in het volgende voorbeeld:

definitieve clausule: ¬ p ¬ q ∨ ⋯ ¬ t u {\neg pññeg pññeg qcdots \neg tvee u} {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t\vee u}

Feit: u speelt het spel met u. {\displaystyle u}

doelbeding: ¬ p ¬ q ∨ ⋯ ¬ t {\\neg pññeg pñor ñcdots \neg t} {\displaystyle \neg p\lor \neg q\vee \cdots \vee \neg t}

In het niet-voorbehouden geval worden alle variabelen in een clausule impliciet universeel gekwantificeerd met het toepassingsgebied van de hele clausule. Bijvoorbeeld:

¬menselijke ( X ) sterfelijke ( X ) {\\\an5} {\displaystyle \neg {\text{human}}(X)\lor {\text{mortal}}(X)}

staat voor:

X ( ¬ mens ( X ) sterfelijk ( X ) Speel de stijl af voor alle X... {\displaystyle \forall X(\neg {\text{human}}(X)\lor {\text{mortal}}(X))}

wat logischerwijs gelijk is aan:

X ( mens ( X ) → sterveling ( X ) ) . X(X)-rechtspijlen. } {\displaystyle \forall X({\text{human}}(X)\rightarrow {\text{mortal}}(X)).}

Hoornclausules spelen een fundamentele rol in de constructieve logica en de computerlogica. Ze zijn belangrijk in geautomatiseerde stellingen die door middel van eerste-orde-resolutie worden bewezen, omdat de oplossing van twee hoornclausules zelf een hoornclausule is, en de oplossing van een doelclausule en een definitieve clausule een doelclausule is. Deze eigenschappen van hoornclausules kunnen leiden tot een grotere efficiëntie in het bewijzen van een stelling (weergegeven als de ontkenning van een doelbeding).

Hoornclausules vormen ook de basis van de logische programmering, waarbij het gebruikelijk is om bepaalde clausules in de vorm van een implicatie te schrijven:

( p q ∧ ⋯ t ) → u {\\\\cdots \cdots \cdots \cdots \cdots \cdots u} {\displaystyle (p\wedge q\wedge \cdots \wedge t)\rightarrow u}

In feite is de resolutie van een doelbepaling met een duidelijke clausule om een nieuwe doelbepaling te produceren de basis van de SLD-resolutie-inferentie-regel, die wordt gebruikt om logisch programmeren en de programmeertaal Prolog te implementeren.

In de logica-programmering gedraagt een bepaalde clausule zich als een procedure voor doelvermindering. Zo gedraagt de hierboven geschreven hoornclausule zich als de procedure:

om u te laten zien{\displaystyle u}, p te laten zien {\displaystyle p}en q te laten zien qen te laten zien. {\displaystyle \cdots }en toon t {\\\playstyle t}{\displaystyle t} .

Om dit achterwaartse gebruik van de clausule te benadrukken, wordt deze vaak in de achterwaartse vorm geschreven:

u ← ( p q ∧ ⋯ t ) {\\\\cdots \cdots } {\displaystyle u\leftarrow (p\land q\land \cdots \land t)}

In Prolog is dit geschreven als:

u :- p, q, ..., t.

De proloognotatie is eigenlijk dubbelzinnig, en de term "doelbeding" wordt soms ook dubbelzinnig gebruikt. De variabelen in een doelbegrip kunnen worden gelezen als universeel of existentieel gekwantificeerd, en het afleiden van "vals" kan worden geïnterpreteerd als het afleiden van een tegenstrijdigheid of als het afleiden van een succesvolle oplossing van het op te lossen probleem.

Van Emden en Kowalski (1976) onderzochten de modeltheoretische eigenschappen van hoornclausules in de context van de logica-programmering, waaruit blijkt dat elke set van bepaalde clausules D een uniek minimaal model M heeft. Een atoomformule A wordt logischerwijs geïmpliceerd door D als en alleen als A waar is in M. Hieruit volgt dat een probleem P dat wordt vertegenwoordigd door een existentieel gekwantificeerde conjunctie van positieve letters logischerwijs wordt geïmpliceerd door D als en alleen als P waar is in M. De minimale modelsemantiek van hoornclausules is de basis voor de stabiele modelsemantiek van logicaprogramma's.

Voorstellen voor hoornclausules zijn ook van belang bij rekenkundige complexiteit, waarbij het probleem van het vinden van waarheidswaarden om een samenvoeging van voorstellen voor hoornclausules waar te maken een P-compleet probleem is (in feite oplosbaar in lineaire tijd), soms ook wel HORNSAT genoemd. (Het onbeperkte Booleaanse bevredigingsprobleem is echter een NP-compleet probleem). De bevredigbaarheid van clausules van de eerste orde Hoorn is onbeslist.