Frage

Angenommen, ich habe einen Teil der Wissensbasis im klausalen Format gezeigt:

[1] p1(banana).

[2] not p1(X) or p2(Y).
[3] p1(X) or not p3(F).

... und mehr Regeln.

Die meisten Bücher würden so etwas tun:

[1,2] {X=banana} p2(Y).

und mehr Schritte.

Erste Frage: Ist es gleichermaßen korrekt, so etwas wie folgt zu tun:

[2,3] {X=X} p2(Y) or not p3(F).

und dann mit der Lösung fortfahren.

Zweite Frage: Was ist, wenn in jeder Klausel verschiedene Variablen verwendet würden, könnte ich das Gleiche wie oben tun, zum Beispiel: Wir hatten:

[2] not p1(X1) or p2(Y1).
[3] p1(X2) or not p3(F2).

[2,3] {X1=X2} p2(Y) or not p3(F2).

Danke im Voraus

War es hilfreich?

Lösung

Angenommen, $ x $ ist hier eine Variable und nicht um ein atomares Angebot, dann müssen Sie zuerst angeben, wie hoch die Quantifizierung für 2 und 3 ist. Ich nehme an, dass es sein sollte

$ forall x, y neg p1 (x) vee p2 (y) $ und ähnlich für 3. um eine Aussage -Wissensbasis zu erhalten und daran zu arbeiten.

Was Sie mit 2,3 vorschlagen, ist nur unter universeller Quantifizierung solide, aber wenn Sie nur eine universelle Quantifizierung haben, ist dies in der Tat nützlich.

Für Ihre zweite Frage: Der Name der Variablen bedeutet nichts, daher ist Ihre Substitution auch dort eingeschaltet. In der Tat entspricht die Behauptung $ forall y, P (y) $ $ forall z, p (z) $. Sie können zuerst die Namen ändern, wenn es Sie glücklich macht :)

Ich werde bemerken, dass es in der Regel bei lösungsgesteuerten Beweisen nützlicher ist, einen konkreten Ausdruck mit einer quantifizierten Regel zu lösen. Beispielsweise bei der Auflösung von $ p (a) $ mit $ forall xp (x) zu q (x) $, um $ Q (a) $ zu erhalten. Dies ist wahrscheinlicher (heuristisch), Sie auf den Beweis einer Behauptung zu bringen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top