Logikprogrammierung: Transformation von B: -AC: -A nach B, C: -A

8

Ich hoffe, ich bin an der richtigen Stelle ... es ist (wahrscheinlich) eine ziemlich einfache Frage zur Logikprogrammierung.

Wenn ich zwei Klauseln des Formulars habe: B:-A C:-A Ich kann diese umwandeln in: B,C:-A

( Bearbeiten: Wo B,Cist eine Konjunktion? Ich mache eine Bottom-up-Bewertung und es ist nützlich für mich, mehrere Klauseln mit demselben Körper mit einer Klausel mit einer Konjunktion der jeweiligen Köpfe darzustellen. Dies scheint trivial, aber ich frage mich, ob Es gibt einen Namen für eine solche Transformation - ich weiß jedoch, dass die resultierende Klausel keine Horn-Klausel mehr ist. )

Weiß jemand, ob diese Transformation einen Namen hat, und wenn ja, kann jemand einen Zeiger (vorzugsweise online) auf eine Stelle bereitstellen, die ihn beschreibt.

Vielen Dank (von einem n00b).

Badroit
quelle

Antworten:

8

(AB)(AC)A(BC)(BA)(CA)(BC)AAB

Was Sie versuchen, hängt mit der Binärisierungstransformation zusammen , die in McAllesters "Zur Komplexitätsanalyse statischer Analysen" erläutert wird. Es kann einen besseren Namen für die Transformation, aber wenn ja, war es nicht die Autoren des Papiers „bezeichnet Eine prägnante Löser für ALFP “ ( A lternating L Ost- F ixed p unkt Formeln eine Verallgemeinerung von Horn - Klauseln sind für Boden- Logikprogramme wie Ihres) - in Beispiel 1 auf Seite 4 diskutieren sie eine ähnliche Transformation und nennen sie einfach "die Möglichkeit des Teilens von Vorbedingungen ausnutzen".

Rob Simmons
quelle
1
Mann, ich muss aufhören, ganze Forschungsbereiche flach zu analysieren und meine Ausbildung bei Wikipedia zu bekommen. Vielleicht kann ich dann herausfinden, wie das Rad heißt, bevor ich es neu erfinde. (Aber zuerst muss ich meine Promotion beenden oO)
Badroit
Entschuldigung für meine falsche Antwort. Ich sollte nicht spät abends posten.
Dave Clarke
Ich verstehe das Gefühl (gilt für beide Kommentare!)
Rob Simmons
2

mb:AB,mc:ACmb,mc:AB×C

beroal
quelle