Prädikatenlogik, rekursive Funktion

Neue Frage »

LiGo Auf diesen Beitrag antworten »
Prädikatenlogik, rekursive Funktion
Ich steh komplett auf dem schlauch:

Es soll eine Funktion rekursiv definiert werden, die für jede beliebige Formel, die Variable x in y umbenennt.

Wie man eine Funktion rekursiv definiert ist mir soweit klar, aber für dieses Problem fehlt mir irgendwie komplett der Ansatz, wie ich es angehen soll.

Ich bin für jeden Wink mit dem Zaunpfahl dankbar!
pseudo-nym Auf diesen Beitrag antworten »

Beginne damit deine Funktion nur für die Terme zu definieren.

Mit welchen Objekten fängt man bei einer Termrekursion an?
LiGo Auf diesen Beitrag antworten »

Wenn ich es richtig verstehe, dann meinst du so:



Aber wie weiter?
pseudo-nym Auf diesen Beitrag antworten »

Was ist ?
LiGo Auf diesen Beitrag antworten »

Na das soll die Formel werden, die die Variablen umbenennt
pseudo-nym Auf diesen Beitrag antworten »

Ich habe leider keine Ahnung was du sagen willst.

Nennen wir die Funktion, die du definieren willst einmal f.
Will man eine Funktion auf den Termen durch Rekursion definieren, muss man erst auf den Variablen festlegen.
Wähle also für jede Variable z deiner Sprache.
 
 
LiGo Auf diesen Beitrag antworten »

Ich hatte beim verfassen die Aufgabe nicht vorliegen:

Definieren Sie rekursiv eine Funktion welche in einer beliebigen Formel die Variable y in die Variable z umbenennt.

PF ist dabei die Menge der Prädikatenformeln.

Ich kenne Rekursion selbstverständlich aus der Progrmmierung und mir ist irgendwie auch klar, wie das hier funktionieren soll. Mir fehlt nur komplett der Ansatz und die Unterlagen die ich habe sind übel schlecht smile

sollte dann wohl dein sein
pseudo-nym Auf diesen Beitrag antworten »

Nun wie ich schon sagte, als erstes muss du geeignete Bilder unter den Variablen der Sprache finden.

Das ist der erste Schritt in einer rekursiven Definition über Terme.
LiGo Auf diesen Beitrag antworten »



als erste Stufe,

wobei V die Menge der Variablen der Sprachte.

Gamma ein Term
pseudo-nym Auf diesen Beitrag antworten »

Dein Beitrag schon deshalb haarsträubend weil du keine ganzen Sätze formulierst, sondern es mir überlässt aus ein paar Begriffen und Formeln einen Sinnzusammenhang herauszufiltern.

Was ist V?

Da du es jetzt zum wiederholten Male erwähnst, muss ich wissen was bedeuten soll. und scheinen jedenfalls nicht gleich zu sein, da das eine in PF und das andere in abbildet.

Und was hat das alles mit meinem Voschlag zu tun? Ich wollte, dass du dir für eine Variable z überlegst. Davon kann ich hier nichts erkennen.

Hilfreich ist es wohl auch wenn du einmal erklärst wie du dir eine Term- bzw. Formelrekursion allgemein vorstellst.
LiGo Auf diesen Beitrag antworten »

Zitat:
Dein Beitrag schon deshalb haarsträubend weil du keine ganzen Sätze formulierst, sondern es mir überlässt aus ein paar Begriffen und Formeln einen Sinnzusammenhang herauszufiltern.


Entschuldige bitte, ich wollte Dich nicht verärgern.

sollte gleich zu sein, meine Abbildung war nur völlig falsch unglücklich Sie müsste auf mindestens einen Term abbilden und nicht auf eine Variable.

Wenn ich es richtig verstehe, muss bei der rekursiven Definition erst die einfachste Möglichkeit der Funktion definiert werden, dann eine Rekursionsbedingung, die beim wiederholten Anwenden die endgültige Rekursion bildet! Ist das soweit richtig?

Zitat:
für eine Variable z überlegst

Das würde ich gerne. Ich habe nur leider keine Idee, wie ich die Umbenennung ausdrücken soll...

Leider scheint mir hierfür wirklich noch ein gewisses Grundverständnis zu fehlen unglücklich
pseudo-nym Auf diesen Beitrag antworten »

Zitat:
Original von LiGo
Wenn ich es richtig verstehe, muss bei der rekursiven Definition erst die einfachste Möglichkeit der Funktion definiert werden, dann eine Rekursionsbedingung, die beim wiederholten Anwenden die endgültige Rekursion bildet! Ist das soweit richtig?


Das stimmt bis auf die Tatsache, dass es nicht unbedingt nur eine Rekursionsbedingung geben muss. In der Tat braucht man für Formelrekursion mindestens drei solcher Schritte.
In deinem Fall solltest du dir überlegen, was die einfachste Form eines Terms ist, damit du auf Objekten dieser Form festlegen kannst.

Zitat:
Original von LiGo
Leider scheint mir hierfür wirklich noch ein gewisses Grundverständnis zu fehlen[.]


Wenn du sagst du kennst Rekursion vom Programmieren, dann meinst du warscheinlich Rekursion auf den natürlichen Zahlen. Rekursion über Terme und Formeln funktioniert ähnlich aber nicht genau gleich.
LiGo Auf diesen Beitrag antworten »

Ok, also ich denke den ersten Schritt habe ich jetzt. Die gesuchte Umbenennung wird durch die Substitution [y/z] beschrieben.

Der gesuchte einfachste Fall müsste also:



lauten.

Hab ich das jetzt soweit mal geschnallt?

Wie geht es weiter?
LiGo Auf diesen Beitrag antworten »

Ok... ich habs noch etwas meiter versucht:






geht das jetzt etwa in die richtige Richtung oder bin ich wieder völlig auf dem Holzweg?
pseudo-nym Auf diesen Beitrag antworten »

Zitat:
Original von LiGo
Ok, also ich denke den ersten Schritt habe ich jetzt. Die gesuchte Umbenennung wird durch die Substitution [y/z] beschrieben.

Das ist keine gute Idee denn Substitution und Variablenersetzung sind nicht gleich. So gilt z.B.:


Zitat:
Original von LiGo
Der gesuchte einfachste Fall müsste also:



lauten.

Solange du nicht sagst vorher deine Variablen kommen, ist diese Gleichung (wie auch die im folgenden Post) ziemlich unlesbar. Ist das y ein Term, eine Formel, eine Variable der gegebenen Sprache, oder etwas ganz anderes?

Ich vermute mittlerweile die Probleme sind grundlegenderer Natur. Gib mir doch bitte mal deine Definition von einem Term.
LiGo Auf diesen Beitrag antworten »

Wenn ich das richtig verstehe ist alles ein Term, was die die folgenden Bedingungen erfüllt:

Jede Variable der Sprache ist Term.
Jede Konstante der Sprache ist ein Term.
Sind t1,...tn -Terme, n >= 1, und ist f Funktionssymbol der Sprache, so ist auch f(t1,...tn) ein Term.


Zitat:
Ich vermute mittlerweile die Probleme sind grundlegenderer Natur. Gib mir doch bitte mal deine Definition von einem Term.


Oh ja... die Befürchtung erschleicht mich langsam auch. Ich dachte ich komme damit besser klar. Hilft nicht.... Backen zusammenkneifen und durch...
pseudo-nym Auf diesen Beitrag antworten »

Deine Definition ist so okay. Als erstes musst du dir jetzt überlegen wie das Bild einer Variablen der Sprache unter VU aussieht.
Wenn dir das schwerfällt kannst dir VU an ein paar Beispielen explizit überlegen:

( sind Variablen der Sprache!)
LiGo Auf diesen Beitrag antworten »

Ok. Von der Aufgabenstellung her soll ja nur y in z umbenannt werden, das würde auf dein Beispiel bedeuten:


( sind Variablen der Sprache!)

Sind die geschweiften Klammern hier richtig?

Danke übrigens für Deine Gedult!
pseudo-nym Auf diesen Beitrag antworten »

Zitat:
Original von LiGo
Sind die geschweiften Klammern hier richtig?

Nein, die Bilder von VU sollen ja wieder Ausdrücke werden und nicht Mengen von Ausdrücken, so wie es bei dir jetzt steht. Wenn du die Klammern entfernst stimmt es.

Jetzt musst du deine Erkenntnis verallgemeinern und VU(x) für eine beliebige Variable der formalen Sprache formulieren.
LiGo Auf diesen Beitrag antworten »

Ok... lass es mich mal versuchen ... puh..

sei ein Term.

seien Variablen der Sprache!)


pseudo-nym Auf diesen Beitrag antworten »

Jetzt hat du zu stark verallgemeinert. solltest doch VU nur für alle Variablen angeben. Wenn die Sprache L ein einstelliges Funktionszeichen f enthält so gilt mit deiner Defintion
, da .
Dein VU tut nicht was es tun sollte.
LiGo Auf diesen Beitrag antworten »

Genau da hebt es bei mir wieder mit dem Verständnis unglücklich
Ich kann ja nicht die Menge aller Variablen in die Funktion packen... und mit einem Variablennamen ( für alle z aus der Menge der Variablen ) kann ich nicht arbeiten, da ja eben dieser Name ersetzt werden soll.
Ich komme einfach nicht drauf, wie ich alle Variablen der Sprache bezeichnen soll, wenn ich keinen Namen nennen soll.


EDIT: Deine Erklärung über meinen letzten Ansatz leuchtet übrigens völlig ein smile
LiGo Auf diesen Beitrag antworten »

Ok. Versuchen wir es nochmal....

seien Variablen



Kann man das so ausdrücken?
LiGo Auf diesen Beitrag antworten »

Noch ein Lösungsansatz, der für mich endlich plausibel wirkt:

( sind Variablen der Sprache)



jetzt bin ich ganz guter Dinge, zumindest mal die Variablen erschlagen zu haben. Passt das so? Und wie geht es jetzt weiter?
pseudo-nym Auf diesen Beitrag antworten »

Du musst unterscheiden zwischen den Variablen der Sprache, welche feste Objekte sind und den metasprachlichen Variablen, die du benutzt um einen Zusammenhang für mehrer Objekte gleichzeitig auszudrücken.

Wenn du x, y, z als Variablen der Sprache festlegst ist

denn ist nichts anderes als das Bild des konkreten Objekts x, (welches ungleich der Sprachvariablen y ist). Dadurch wird deine Fallunterscheidung bedeutungslos.

Wenn du VU für jede Sprachvariable betrachten willst, brauchst du eine Metavariable:
Sei eine beliebige Variable der formalen Sprache.


Hier ist lediglich ein Platzhalter für ein anderes Objekt. Intuitiv ist das genau das was man sich unter einer Variable vorstellt, aber die Sprachvariable, die du in deinem Vesuch verwendet hast, ist für diesen Zweck nicht zu gebauchen, denn sie ist ein konkretes Objekt welches wir studieren wollen.
LiGo Auf diesen Beitrag antworten »

Ok. Ich denke das habe ich soweit verstanden... also sind ide ersten 2 Schritte der Definition:



( sind Variablen der Sprache)

Sei eine beliebige Variable der formalen Sprache.



Soweit richtig?

Und jetzt muss ich das irgendwie für Terme verallgemeinern?
pseudo-nym Auf diesen Beitrag antworten »

Diese Definition ist nicht korrekt, denn y hat unter diesem VU zwei verschiedene Bilder.
Wegem dem ersten Schirtt gilt

andererseits kann man y für im zweiten Schritt einsetzen und erhält.


Der erste Schritt deiner Definition ist nicht zielführend, da kein Term ist und überflüssig, da der zweite Schritt bereits ein Bild für y liefert.
LiGo Auf diesen Beitrag antworten »

Ok. Wir müssen jetzt also einen Term abbilden:

sei ein Term.




Puh... das klingt für mich relativ plausibel.... wäre das der 2te schritt?
pseudo-nym Auf diesen Beitrag antworten »

Ja das geht. Jetzt musst du VU noch rekursiv über alle Formeln definieren.
LiGo Auf diesen Beitrag antworten »

OK. Ich würde sagen, dass ist jetzt aber das hier:







Fehlt jetzt noch was? Muss ich die Quantoren noch irgendwie beachten?






Bitte, bitte smile
pseudo-nym Auf diesen Beitrag antworten »

Zitat:
Original von LiGo





Wenn wirklich Funktionen sein sollen musst du mir erst erklären wie boolesche Operationen auf denen funktionieren sollen.
Der letzte Schritt ist außerdem überflüssig, denn .

Zitat:
Original von LiGo



Das Problem ist hier, dass Formeln keine Mengen sind und man sie dementsprechend a priori nicht vereinigen kann. Eine Fallunterscheidung wie bei den Variablen wird imho mehr Effekt haben.
Auch hier kannst du dir die Definition für den Allquantor sparen, da .
LiGo Auf diesen Beitrag antworten »

Zitat:
Wenn wirklich Funktionen sein sollen musst du mir erst erklären wie boolesche Operationen auf denen funktionieren sollen. Der letzte Schritt ist außerdem überflüssig, denn .


Du siehst wirklich alles... wahnsinn. In dem Fall war es aber wirklich mal nur ein Tippfehler. es sollte Formeln heissen.

Ok. Also mit Fallunterscheidung:

Sei eine beliebige Variable der formalen Sprache.



Zitat:


.


Leuchtet mir voll ein, beide Fälle werden aber in vergleichbaren definitionen im Skript berücksichtig.
LiGo Auf diesen Beitrag antworten »

Ich hoffe mal, dass die Definition jetzt stimmt.

Jetzt muss ich noch beweisen, dass für die Funktion für alle , jede Struktur und alle Belegungen folgendes gilt:

, sofern .


Das wird noch ein hartes Stück Arbeit für mich.

Ich vermute mal, dass ich das über eine strukturelle Induktion beweisen muss.

Muss ich dann jetzt für jeden Fall der Funktionsdefinition die Behauptung beweisen?
pseudo-nym Auf diesen Beitrag antworten »

Die Definition passt jetzt so.

Ich würde die Aussage tatsächlich induktiv über den Aufbau der Formel beweisen.
LiGo Auf diesen Beitrag antworten »

Nach langem hin und herüberlegen versuche ich es mal mit Fall 1:

Sei eine beliebige Variable.

Dann gilt laut Definition:



= y:


daraus folgt:


ungleich y:


daraus folgt:


Damit wäre der erste Fall bewiesen. Stimmt das so?
pseudo-nym Auf diesen Beitrag antworten »



Beschreibe mir bitte in Worten so ausführlich wie du kannst, was dieser Ausdruck bedeutet.
LiGo Auf diesen Beitrag antworten »

Autsch.... ich sehe... und höre an deiner Antwort, dass ich wieder komplett daneben liege.

Ich kann deine Frage leider nicht beantworten, da ich die Antwort nicht kenne.

, sofern .

Es war das, was übrig geblieben ist, wenn ich die VU funktion mit einer Variablen befüllt habe.



Ich verstehe bereits in diesem Ausdruck nicht, was ich mit dem alleine stehenden anfangen soll.

Ich versuche jetzt seit Tagen mit harter arbeit an dieses Zeugs ranzukommen, was echt nicht einfach ist. So langsam wird es frustrierend. Ich habe den ganzen Abend versucht eine Quelle zu finden, die mir wenigstens diesen ersten Schritt der Induktion klar erleutert
pseudo-nym Auf diesen Beitrag antworten »

Zitat:
Original von LiGo


Ich verstehe bereits in diesem Ausdruck nicht, was ich mit dem alleine stehenden anfangen soll.


Dieser Ausdruck ist seltsam geklammert. Er muss

heißen.

Jedenfalls wirst du sehen, dass die Erfüllungsrelation nicht für Strukturen und Terme definiert ist. Dementsprechend macht

oder in Worten: "Die Struktur erfüllt den Term " keinen Sinn.

Bevor du mit dem Beweis der eigentlichen Aussage, welche für Formeln gilt, anfangen kannst, musst du erst noch für alle Terme t zeigen.

Was ist eigentlich Vk?
LiGo Auf diesen Beitrag antworten »

Zitat:
Dieser Ausdruck ist seltsam geklammert. Er muss heißen.


Die original Aufgabe ist exakt so geklammert:

, sofern

Du sagst, das passt so nicht?

Zitat:
Jedenfalls wirst du sehen, dass die Erfüllungsrelation nicht für Strukturen und Terme definiert ist.

Leider war die Erfülllungsrelation für Strukturen in dem mir vorliegenden Skript überhaupt nicht definiert, sie wurde einfach ab einem gewissen Punkt verwendet. Nach deiner Aussage habe ich mir das nochmal anesehen, und du hast recht, sie wird nur für Formeln verwendet.

Zitat:
Was ist eigentlich Vk?

Nach längerem Suchen habe ich hier eine Definition gefunden:
"Die Mengen bzw. der in einem Term t bzw. einer Formel vorkommenden Variablen.

Ok. Dann werd ich mich jetzt daran mal versuchen
LiGo Auf diesen Beitrag antworten »



Für eine Variable muss ich das nicht beweisen?

Hier also für die Terme:

Fall


--> muss ich das noch in die Formeldefinition aufnehmen?


Induktionsvoraussetzung:



Insgesamt sollte doch die Behauptung damit gezeigt sein?

Und wie mache ich jetzt mit den Formeln weiter?
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »