Wie ist das denn bei Aufgabe 1.4 mit der Unifikation:
M4 = { Q(f(x,a), g(h(x),y)), Q(f(b,a), g(h(x),a,b)) }
die Funktion g() hat ja einmal zwei und einaml drei Argumente. Ist die Unifikation da möglich oder übersehe ich etwas?
Wie ist das denn bei Aufgabe 1.4 mit der Unifikation:
M4 = { Q(f(x,a), g(h(x),y)), Q(f(b,a), g(h(x),a,b)) }
die Funktion g() hat ja einmal zwei und einaml drei Argumente. Ist die Unifikation da möglich oder übersehe ich etwas?
Kannst du denn einen Unifikator angeben, der die beiden Funktionen auf den selben Ausdruck abbildet?
(Falls du P1 gemacht hast: Wie war das denn in Prolog?)
tja, das ist eben genau mein Problem. Man könnte ja (theoretisch) b auf eine leere Menge abbilden. Aber ich denke halt, dass man das nicht darf weil Substitution mit einer leeren Menge … naja und zweitens ist b keine Variable…
tja, das ist eben genau mein Problem. Man könnte ja (theoretisch) b auf eine leere Menge abbilden. Aber ich denke halt, dass man das nicht darf weil Substitution mit einer leeren Menge … naja und zweitens ist b keine Variable…
Ja, b ist keine Variable, deswegen darf es nicht substituiert werden. Aber selbst wenn b eine Variable wäre, würde die Substituion mit der leeren Menge nicht die Argumentzahl von g ändern - das dritte Argument wäre dann eben die leere Menge. Diese muss dann auch als Konstante vorkommen, wenn du damit arbeiten willst.
ah ok. Das war ich mir nämlich unsicher was passiert wäre, wenn b eine Variable gewesen wäre. Danke!