Horn-clausule
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}
Feit: u speelt het spel met u.
doelbeding: ¬ p ∨ ¬ q ∨ ⋯ ¬ t {\\neg pññeg pñor ñcdots \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}
staat voor:
∀ X ( ¬ mens ( X ) ∨ sterfelijk ( X ) Speel de stijl af voor alle X...
wat logischerwijs gelijk is aan:
∀ X ( mens ( X ) → sterveling ( X ) ) . X(X)-rechtspijlen. }
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}
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, p te laten zien en q te laten zien en ⋯ te laten zien. en toon t {\\\playstyle t} .
Om dit achterwaartse gebruik van de clausule te benadrukken, wordt deze vaak in de achterwaartse vorm geschreven:
u ← ( p ∧ q ∧ ⋯ t ) {\\\\cdots \cdots }
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.
Vragen en antwoorden
V: Wat is een hoornclausule?
A: Een hoornclausule is een logische disjunctie van liters, waarbij hoogstens één van de liters positief is en alle andere negatief.
V: Wie beschreef ze voor het eerst?
A: Alfred Horn beschreef ze voor het eerst in een artikel uit 1951.
V: Wat is een bepaalde bijzin?
A: Een clausule van Horn met precies één positief letterwoord wordt een bepaalde clausule genoemd.
V: Wat is een feit?
A: Een bepaalde bijzin zonder negatieve liters wordt soms een "feit" genoemd.
V: Wat is een doelbepaling?
A: Een hoornwoordelijke bepaling zonder positieve letterwoorden wordt soms een doelbepaling genoemd.
V: Hoe werken variabelen in niet-propositionele gevallen?
A: In het niet-propositionele geval zijn alle variabelen in een clausule impliciet universeel gekwantificeerd met bereik de gehele clausule. Dit betekent dat zij van toepassing zijn op elk deel van de uitspraak.
V: Welke rol spelen hoornclausules in de constructieve logica en de computationele logica? A: Hoornse clausules spelen een belangrijke rol bij het geautomatiseerd bewijzen van stellingen via eerste-orde-resolutie, omdat het resolvent van twee Hoornse clausules of tussen een doel- en een doelclausule kan worden gebruikt om een grotere efficiëntie te bereiken bij het bewijzen van iets dat wordt voorgesteld als de negatie van zijn doelclausule. Ze worden ook gebruikt als basis voor logische programmeertalen zoals Prolog, waar ze zich gedragen als doelreductieprocedures.