Makoto Takeyama und ich haben am 5. Januar 1996 Folgendes an data-refinement@etl.go.jp gesendet:
Betreff: Was ist eine Datenverfeinerungsbeziehung?
Sehr geehrte Damen und Herren, ist noch jemand an einer Datenveredelung interessiert?
Kürzlich haben Mak und ich uns wieder eine Idee angesehen, über die wir uns vor vielen Monaten Gedanken gemacht haben. Die Motivation besteht darin, die logischen Beziehungen zu charakterisieren, die für die Darstellung der Datenverfeinerung relevant sind. Dies wurde durch die Erkenntnis angeregt, dass logische Beziehungen verwendet werden können, um die "Sicherheit" abstrakter Interpretationen aufzuzeigen (siehe Abschnitt 2.8 des Kapitels von Jones und Nielson in Band 4 des Handbuchs der Logik in CS), aber solche Beziehungen sind allgemeiner als Diejenigen, die zur Anzeige der Datenverfeinerung verwendet wurden.
Meine Argumentation lautet wie folgt. Wenn eine Relation R eine Datenverfeinerung zwischen (zwischen) Mengen herstellt, muss sie (teilweise) Äquivalenzrelationen auf jeder der Mengen mit diesen Äquivalenzklassen in einer Eins-zu-Eins-Korrespondenz und jedem Element einer Äquivalenzklasse induzieren muss sich auf alle Elemente der entsprechenden Äquivalenzklassen in den anderen Interpretationsbereichen beziehen. Die Idee ist, dass jede Äquivalenzklasse einen "abstrakten" Wert darstellt; In einer vollständig abstrakten Interpretation sind die Äquivalenzklassen Singletons.
Wir können eine einfache Bedingung geben, um sicherzustellen, dass eine n-äre Beziehung R diese Struktur induziert. Definieren Sie v ~ v 'in Domäne V, falls in einer anderen Domäne X ein Wert x existiert (und in den anderen Domänen beliebige Werte ...), so dass R (..., v, ..., x, ... ) und R (..., v ', ..., x, ...). Dies definiert symmetrische Beziehungen für jede der Domänen. Die Durchsetzung der lokalen Transitivität würde uns dann für jede Domäne Pers geben, aber dies würde nicht ausreichen, da wir die Transitivität für alle Interpretationen sicherstellen möchten. Die folgende Bedingung erreicht dies: wenn v_i ~ v'_i für alle i, dann R (..., v_i, ...) wenn R (..., v'_i, ...) nenne ich dies "zickzack zack Vollständigkeit "; im Fall n = 2 heißt es, wenn R (a, c) & R (a ', c'), dann R (a, c '), wenn R (a', c).
Vorschlag. Wenn R und S Zick-Zack-Beziehungen sind, sind dies auch R x S und R -> S.
Vorschlag. Angenommen, t und t 'sind Terme vom Typ th im Kontext pi, und R ist eine vollständige logische Zick-Zack-Beziehung; dann, wenn die Äquivalenzbeurteilung t = t 'wie folgt interpretiert wird:
für alle u_i in V_i [[pi]]
impliziert R ^ {pi} (..., u_i, ...), dass für alle i V_i [[t]] u_i ~ V_i [[t ']] u_i
Diese Interpretation erfüllt die üblichen Axiome und Regeln für die Gleichungslogik.
Die Intuition hier ist, dass die Ausdrücke sowohl innerhalb einer einzigen Interpretation (V_i) als auch über Interpretationen hinweg "äquivalent" sein sollen; dh die Bedeutungen von t und t 'liegen in derselben R-induzierten Äquivalenzklasse, unabhängig davon, welche Interpretation verwendet wird.
Fragen:
Hat jemand diese Art von Struktur schon einmal gesehen?
Was sind die natürlichen Verallgemeinerungen dieser Ideen auf andere Sätze und "willkürliche" semantische Kategorien?
Bob Tennent rdt@cs.queensu.ca