Makoto Takeyama et moi avons envoyé ce qui suit à data-refinement@etl.go.jp le 5 janvier 1996:
Objet: qu'est-ce qu'une relation d'affinement des données?
Cher tout le monde: quelqu'un est-il toujours intéressé par le raffinement des données?
Récemment, Mak et moi avons réexaminé une idée que nous avons envisagée il y a plusieurs mois. La motivation est de caractériser les relations logiques pertinentes pour montrer le raffinement des données. Cela a été stimulé par la prise de conscience que les relations logiques peuvent être utilisées pour montrer la «sécurité» des interprétations abstraites (voir la section 2.8 du chapitre de Jones et Nielson dans le volume 4 du Handbook of Logic in CS), mais ces relations sont plus générales que ceux utilisés pour montrer le raffinement des données.
Mon raisonnement est le suivant. Si une relation R établit un raffinement de données entre (parmi) ensembles, alors elle doit induire des relations d'équivalence (partielles) sur chacun des ensembles, avec ces classes d'équivalence en correspondance un à un, et chaque élément d'une classe d'équivalence doit être lié à tous les éléments des classes d'équivalence correspondantes dans les autres domaines d'interprétation. L'idée est que chaque classe d'équivalence représente une valeur "abstraite"; dans une interprétation entièrement abstraite, les classes d'équivalence sont des singletons.
On peut donner une condition simple pour s'assurer qu'une relation n-aire R induit cette structure. Définissez v ~ v 'dans le domaine V s'il existe une valeur x dans un autre domaine X (et des valeurs arbitraires ... dans les autres domaines) telles que R (..., v, ..., x, ... ) et R (..., v ', ..., x, ...). Ceci définit des relations symétriques sur chacun des domaines. Imposer la transitivité locale nous donnerait alors des pers sur chaque domaine, mais cela ne suffirait pas car nous voulons assurer la transitivité entre les interprétations. La condition suivante y parvient: si v_i ~ v'_i pour tout i, alors R (..., v_i, ...) ssi R (..., v'_i, ...) j'appelle cela "zig- zag complétude "; dans le cas n = 2, il dit que si R (a, c) & R (a ', c') alors R (a, c ') ssi R (a', c).
Proposition. Si R et S sont des relations complètes en zigzag, R x S et R -> S. le sont aussi.
Proposition. Supposons que t et t 'soient des termes de type th dans le contexte pi, et R est une relation logique complète en zig-zag; alors, si le jugement d'équivalence t = t 'est interprété comme suit:
pour tout u_i dans V_i [[pi]],
R ^ {pi} (..., u_i, ...) implique que, pour tout i, V_i [[t]] u_i ~ V_i [[t ']] u_i
cette interprétation satisfait les axiomes et les règles habituelles de la logique équationnelle.
L'intuition ici est que les termes doivent être "équivalents" à la fois au sein d'une même interprétation (V_i) et entre les interprétations; c'est-à-dire que les significations de t et t 'sont dans la même classe d'équivalence induite par R, quelle que soit l'interprétation utilisée.
Des questions:
Quelqu'un a-t-il déjà vu ce genre de structure?
Quelles sont les généralisations naturelles de ces idées à d'autres propositions et catégories sémantiques "arbitraires"?
Bob Tennent rdt@cs.queensu.ca