Konstanten dürfen nicht selbes Objekt referenzieren als 1stOL darstellen
-
V (c1,c2) € C : c1 != c2
Ist ja Mist, da zu diesem Zeitpunkt ja auch (c1,c1) überprüft wird.
V c1 € C : V c2 € C\{c1} : c1 != c2
Hmm? Was passiert wenn ich aus der Menge {3,3,5} die {3} abziehe? Hab ich dann {3,5} oder nur noch {5}? Wahrscheinlich nur ersteres, weil ich ja c1 rausnehme und nicht das Objekt welches die Konstante c1 referenziert. Also müsste das so passen?
Anderer Vorschlag:
V (c1,c2) : Name(c1) != Name(c2) => c1 != c2
Wobei ich natürlich die Funktion Name dafür erfinden müsste und keinen Plan habe wie ich die definieren soll. Die ist ja "Meta" und will als Metapher quasi im fertig kompilierten Programm den Variablennamen haben...Reflection.
Hmm, weiß jemand wie es geht?
MfG SideWinder
-
{3,3,5} ist keine Menge.
Ansonsten koenntest du mal etwas mehr Kontext liefern und vor allem: Was ist deine Frage! Dein Text liesst sich wie das Gebrabbel meine Oma.
Latex macht sich fuer die Darstellung besser. Unter der Annahme das V fuer 'fuer alle' seht:
(c1,c2) € C
ist verschieden von
c1 € C : V c2 € C
Im ersten Fall ist C eine Menge von Paaren. Im zweiten Fall nicht. Desweiteren: Wenn du von Objekten und Referenzen redest, ist das wohl immer auf eine Programmiersprache bezogen. Welche? Denn die Moeglichkeiten in diesen unterscheiden sich.
V (c1,c2) : Name(c1) != Name(c2) => c1 != c2
Wobei ich natürlich die Funktion Name dafür erfinden müsste und keinen Plan habe wie ich die definieren soll.
Diese Eigenschaft garantieren Hash-Funktion. Die Umkehrung leider nicht.
-
Also wir haben gelernt, dass {3, 3, 5} = {3, 5} gilt. Doppelte Elemente können einfach gezählt werden. Auch die Reihenfolge der Elemente spielt keine Rolle.
Von dem her müsste {3, 5}\{3} = {5} sein. Bin mir jetzt aber nicht 100% sicher.
*Edit
Sollte zumindest einen Teil deiner Frage beantworten
-
Meine Frage steht im Threadtitel. Wie kann ich in FOL verhindern, dass Konstanten aus der Menge C der Konstanten die gleichen Objekte referenzieren.
Das heißt C = { c1, c2, c3 } ... meine Konstanten, da können natürlich auch keine "Doppelten" drin sein, aber sie könnten auf das selbe Objekt verweisen...das verhindere ich mit folgender Regel in der Wissensbasis:
V c1 € C : V c2 € C\c1 : c1 != c2
Das heißt jede Konstante aus c ist ungleich mit jeder anderen Konstante aus C.
@knivil: Nein, keine Programmiersprache, es geht um theoretische Informatik im Bereich Knowledge Based Systems.
MfG SideWinder
-
V c1 € C : V c2 € C\c1 : c1 != c2
Du unterscheidest doch in der Fragestellung zwischen der Identität von Konstanten und der Identität der Objekte, auf die sie verweisen. Das muss auch in der Formel zum Ausdruck kommen. Etwa so (im Grunde nichts anderes als dass
value
injektiv ist):
-
ahhhh, First Order Logic ... da soll jetzt mal einer mit 1stOL drauf kommen .... ich muss mich entschuldigen, jetzt ist deine Fragestellung klarer. Was besseres als Antwort habe ich im Moment aber nicht zu bieten.
-
knivil schrieb:
{3,3,5} ist keine Menge.
Das ist genau so eine Menge wie $$\emptyset $$ eine Menge ist.
Nur weil diese keine Ordnung hat, oder worauf stützt Du deine Aussage?icarus schrieb:
Also wir haben gelernt, dass {3, 3, 5} = {3, 5} gilt. Doppelte Elemente können
einfach gezählt werden. Auch die Reihenfolge der Elemente spielt keine Rolle.Von dem her müsste {3, 5}\{3} = {5} sein. Bin mir jetzt aber nicht 100% sicher.
Da aber:
\#\mathbb{M}=3\neq\#\mathbb{D}=2 \overset{?}{\Longrightarrow}\mathbb{M}\neq\mathbb{D}\Leftrightarrow \{3,3,5\}\neq\{3,5\}SideWinder schrieb:
V c1 € C : V c2 € C\c1 : c1 != c2
Ich hätte das vlt. anders formuliert.
\forall c\_1\in\mathbb{C} \not \exists c\_2\in\mathbb{K}\subset\mathbb{C}\setminus\{c\_1\} : c\_1=c_2Daraus käme nämlich auch hervor dass
Oder Intensional:
Solltest Du deine Logik über eine Abbildung bauen, so gebe ich Bashar
im prinzip recht. Du solltest aber überlegen ob diese nicht auch noch surjektiv
sein sollte.Weil sonst könnte ja für die Abbildung
f:\mathbb{M}\to\mathbb{E}\supseteq\mathbb{D} \newline f(c\_1)\mapsto y\not\in\mathbb{D}\forall c\_1=3gelten....
...und das willste ja bestimmt nicht,...grüüüße
-
zeusosc schrieb:
\mathbb{M}:=\{3,3,5\}\newline \mathbb{D}:=\{3,5\}
Da aber:
\#\mathbb{M}=3\neq\#\mathbb{D}=2 \overset{?}{\Longrightarrow}\mathbb{M}\neq\mathbb{D}\Leftrightarrow \{3,3,5\}\neq\{3,5\}Wer redet denn hier von Multimengen? M und D sind die gleiche Menge, nur anders aufgeschrieben.
-
Erst sagst Du das $$\mathbb{M}$$ keine Menge ist,
und nun das $$\mathbb{M}=\mathbb{D}$$ ist.Diese beiden Mengen haben eine andere Anzahl an elementen.
Wobei $$\mathbb{M}$$ eine Multimenge ist.Allein die Aussage das $$\mathbb{M}\supseteq\mathbb{D}$$
ist, stimme ich Dir zu. Aber von Gleichheit kann doch mal wirklich keine
rede sein...Ziel des ganzen, so wie ich es verstanden habe, ist es eine Menge durch
verwendung der Prädikatorlogik zu basteln, welche keine Multimenge ist!Um das zu erreichen, kann man eine Menge mit mehrfach vorkommenden Elementen
(also eine Multimenge) als Obermenge nehmen und sich dann eine Untermenge basteln
auf die diese regeln, nämlich das keine konstante auf das selbe Object referenziert, zutreffen.Dann hat man nämlich auch gleich die mittel um die Logik zu prüfen.
grüüße
-
oder worauf stützt Du deine Aussage
wikipedia schrieb:
als eine Zusammenfassung bestimmter, wohlunterschiedener Objekte
Das ist auch meine Auffassung. Die erste 3 ist nicht von der zweiten 3 unterscheidbar. Warum du jetzt unbedingt Ordnungsrelation ins Spiel bringst, weiss ich nicht. Keiner hat davon geredet.
-
zeusosc schrieb:
Erst sagst Du das $$\mathbb{M}$$ keine Menge ist,
und nun das $$\mathbb{M}=\mathbb{D}$$ ist.M=D, aber knivil != Bashar
Diese beiden Mengen haben eine andere Anzahl an elementen.
Wobei $$\mathbb{M}$$ eine Multimenge ist.Es gibt zwei Möglichkeiten:
- Es sind Mengen, dann sind sie gleich.
- Es sind Multimengen, dann sind sie ungleich.
Sidewinder spricht von Mengen. Wenn er es anders meint, soll er sich nochmal melden. Bis dahin sollten wir die Spekulationen und insbesondere die gegenseitigen Belehrungen über absolute Basics sein lassen.
-
Ok, die CANTOR'sche formulierung lasse ich mal gelten,...
um das zukünftig zu differenzieren werde ich mich dann auch mal an die nomenklatur:
Um Multimengen von normalen Mengen zu unterscheiden, wird gewöhnlich bei ihrer Aufzählung ein kleines als Index angegeben.
Beispiel: $${x,y,y}_b$$
halten...
Wenn SideWinder aber nur von Mengen redet, verstehe ich seine frage nicht...
grüüüße
-
Okay, Klarstellungen:
The simplest kind of nonidentity is between constants — e.g., like stating Monkey != Banana1. ⇒ In general FOL, it is not assumed that different constants mean different objects! Two possibilities to achieve nonidentity between constants: (1) We add an axiom into the knowledge base stating a disequality for every pair of constants (this is called the unique-names axiom)
Die Menge der Konstanten (=Konstantennamen) ist selbstverständlich keine Multimenge. Ich war nur verwirrt weil ich zuerst dachte, dass die Menge der Konstnaten = die Menge der Objekte die sie referenzieren sind, was schlichtweg Blödsinn ist.
Ich habe das nun wie oben gezeigt umgesetzt:
V c1 € C : V c2 € C\c1 : c1 != c2
Tut mir leid, dass ich euch auch verwirrt habe und so ein langer Thread entstanden ist.
MfG SideWinder
-
SideWinder schrieb:
Die Menge der Konstanten (=Konstantennamen) ist selbstverständlich keine Multimenge.
Ich habe das nun wie oben gezeigt umgesetzt:
V c1 € C : V c2 € C\c1 : c1 != c2
Das ist eine Tautologie, denn wenn, wie du sagst, C keine Multimenge ist, dann ist c1 immer ungleich c2.
-
Hmm, jetzt bin ich verwirrt. Werden Konstanten sofort aufgelöst zu den Objekten? Nein, oder? Also fehlt hier noch 2x value(c1) != value(c2) oder?
MfG SideWinder
-
(1) We add an axiom into the knowledge base stating a disequality for
every pair of constants (this is called the unique-names axiom)bashar schrieb:
SideWinder schrieb:
Die Menge der Konstanten (=Konstantennamen) ist selbstverständlich keine Multimenge.
Ich habe das nun wie oben gezeigt umgesetzt:
Code:
V c1 € C : V c2 € C\c1 : c1 != c2Das ist eine Tautologie, denn wenn, wie du sagst, C keine Multimenge ist, dann ist c1 immer ungleich c2.
Ist richtig, SideWinder hat quasi nur Axiom 1 formalistisch darstellen wollen, oder sehe ich das falsch?
-
SideWinder schrieb:
Hmm, jetzt bin ich verwirrt. Werden Konstanten sofort aufgelöst zu den Objekten?
Ich denke die Verwirrung kommt daher, dass du versucht mit dem All-Quantor über die Menge der Konstanten zu quantifizieren. Das ist in FO nämlich unmöglich.
Du kannst nicht über die Menge der Konstanten quantifizieren. Was geht, ist folgendes:
\begin{align*} \Phi := \left\{ c\_i \neq c\_j \mid i,j \in \mathbb{N}, i < j \right\} \end{align*}Dann ist Phi eine Menge von FO-Formeln. In Phi stehen unter anderem die folgenden Formeln:
c_1 != c_2
c_3 != c_7Alle Formeln in Phi zusammengenommen sagen aus "es gibt keine zwei unterschiedlichen Konstanten, die mit demselben Wert interpretiert werden".
In FO kann man das aber nicht in einer einzigen Formel ausdrücken, denn man würde die Konjunktion über ganz Phi brauchen. Phi ist aber unendlich, und FO kann nur endliche Konjunktionen ausdrücken.
-
@Christoph: Gilt das auch noch, wenn die Menge der Konstanten endlich ist. In einem Knowledged-Based-System führe ich die Konstanten ja als "background knowledge" ein, da kann ich natürlich als Mensch auch nur endlich viele hinschreiben.
MfG SideWinder
-
SideWinder schrieb:
@Christoph: Gilt das auch noch, wenn die Menge der Konstanten endlich ist.
Wenn es in der Sprache nur endlich viele Konstanten gibt, dann ist mein Phi von vorhin endlich und damit ist die Konjunktion über Phi auch endlich. Dann kann man es hinschreiben in FO:
\begin{align*} \bigwedge_{\substack{i,j\in\{1,2,...,n\}\\i
Für mich mal interesse halber:
Ist die folgerung, respektive formulierung, falsch?
greetz