Creo que sería beneficioso para usted buscar la teoría de la interpretación abstracta, que proporciona respuestas muy completas a preguntas similares en el área ligeramente diferente del análisis de programas basados en redes.
Me parece que está utilizando un marco basado en álgebras. Estoy usando la palabra álgebra aquí en el sentido de álgebra universal, donde supongo que las restricciones en la estructura del álgebra están dadas por la igualdad entre los términos. Hay dos sentidos diferentes en los que las abstracciones (o jerarquías) entran en escena.
- La abstracción como una relación entre dos álgebras específicas. Es posible que desee decir que una álgebra tiene una estructura más rica que otra, o que cada problema que puede resolver con un álgebra puede resolverlo con el otro. Este tipo de relación es lo que se formalizaría comprar homomorfismos, o algún otro mapeo entre álgebras.
- Jerarquías de abstracción como familias de álgebras. En su caso, estas serían familias de deltoides con ciertas propiedades. Como un ejemplo más general, considere todos los conjuntos parcialmente ordenados. Podemos pensar en redes, redes distributivas y redes booleanas como una secuencia de subfamilias que tienen propiedades más ricas.
Las dos nociones están estrechamente relacionadas pero son diferentes.
Abstracción entre dos estructuras.
La idea de la interpretación abstracta es que es útil dotar a las estructuras que considera con una noción de orden. Considera dos estructuras
y ( N , f N ) , con f M : M → M y f N : N → N como las operaciones de interés.( M, fMETRO)( N, fnorte)FMETRO: M→ MFnorte: N→ N
Un homomorfismo en el sentido de álgebra universal se vería así:
es una función que satisface la igualdad h ( f M ( a ) ) = f N ( h ( a ) ) .h : M→ Nh ( fMETRO( a ) ) = fnorte( h ( a ) )
Podemos ver las dos estructuras que aparecen arriba como estructuras pre ordenadas
y ( N , = , f N )( M, = , fMETRO)( N, = , fnorte)
y el homomorfismo que podemos reescribir para ser una función satisfactoria
- que si entonces h ( a ) = h ( b ) , ya = bh ( a ) = h ( b )
- para todo en M , h ( f M ( a ) ) = f N ( h ( a ) ) .unaMETROh ( fMETRO( a ) ) = fnorte( h ( a ) )
Ahora, suponga que tiene alguna otra noción de aproximación disponible que tiene sentido. Por ejemplo, cuando tratamos con conjuntos de estados en la verificación de programas, la inclusión de subconjuntos tiene sentido para ciertas aplicaciones, o cuando se trata de fórmulas en deducción automática, la implicación tiene sentido. De manera más general, podemos considerar
y ( N , ⊑ , f N ) , donde ⪯ y ⊑ son pedidos anticipados .( M, ⪯ , fMETRO)( N, ⊑ , fnorte)⪯⊑
Ahora, en lugar de homomorfismo, podemos tener una función de abstracción
que esα : M→ N
- monótono, lo que significa que siempre que tenemos α ( a ) ⊑ α ( b ) , ya ⪯ bα ( a ) ⊑ α ( b )
- semirremolques conmuta con las operaciones de: para todos una en M .α ( fMETRO( a ) ) ⊑ fnorte( α ( a ) )unaMETRO
La función de abstracción hace explícita la idea de que si la estructura sobre es una abstracción de la estructura sobre M , entonces evaluar un término en N no puede producir resultados más precisos (con respecto a la noción de aproximación en N ) que evaluar el mismo término en N M y, a continuación mapear a N .norteMETROnortenorteMETROnorte
Ahora podemos preguntar si es necesario abordar el problema en términos de abstracción en lugar de refinamiento. Es decir, no podemos decir que es un refinamiento de N y formular condiciones en términos. Esto es exactamente lo que hace una función de concretización .METROnorte
Una función de concretización es monótona y satisface la desigualdad f M ( γ ( b ) ) ⪯ γ ( f N ( b ) ) .γ: N→ MFMETRO( γ( b ) ) ⪯ γ( fnorte( b ) )
Las condiciones de abstracción y concretización se denominan condiciones de solidez en la interpretación abstracta. En el caso especial de que y γ formen una conexión de Galois, las condiciones de abstracción y concreción son equivalentes. En general, no son equivalentes.αγ
Todo lo que hemos hecho hasta ahora solo formaliza la noción de abstracción entre un par de estructuras. Las cosas que he dicho se pueden resumir de manera mucho más sucinta en el lenguaje de la teoría de categorías. He evitado categorías debido a tu comentario anterior.
Jerarquías de abstracción
Supongamos que tenemos una estructura dotada de un pedido anticipado y algunas operaciones. Podemos considerar todas las estructuras N de manera que N sea una abstracción de M en el sentido anterior. Si tenemos que N 1 es una abstracción de N 2 y ambas son abstracciones de M , tenemos tres elementos de la jerarquía. La relación 'es una abstracción de' nos permite definir un preorden entre estructuras. Llamemos jerarquía a una familia de estructuras ordenadas por abstracción .METROnortenorteMETROnorte1norte2METRO
Si considero su ejemplo, parece que su deltoides abstracto puede ser un candidato para el elemento máximo en alguna jerarquía. No estoy completamente seguro porque el deltoides abstracto parece ser una familia de deltoides en lugar de un deltoide específico.
Lo que ahora puede hacer es considerar diferentes jerarquías. La jerarquía de todos los deltoides. Una sub-jerarquía basada en varias consideraciones que tiene arriba. Un ejemplo específico en el contexto de interpretación abstracta es una jerarquía de redes completas que están en una conexión de Galois con una red de conjunto de poder dado, y sub-jerarquías que consisten en redes de distribución o solo booleanas.
Como Martin Berger señala en los comentarios, esta noción de abstracción entre jerarquías es capturada por la de adjuntos entre categorías.
Una perspectiva categórica
Hubo un comentario solicitando más comentarios sobre las categorías. Ese comentario ya no está allí, pero responderé de todos modos.
Retrocedamos y miremos lo que está haciendo al diseñar deltoides y lo que he descrito anteriormente desde una perspectiva más general. Estamos interesados en comprender la estructura esencial de las entidades que manipulamos en un contexto de software y la relación entre estas entidades.
La primera conclusión importante es que no solo estamos interesados en un conjunto de elementos sino en las operaciones que podemos realizar en esos elementos y las propiedades de esas operaciones. Esta intuición impulsa el diseño de clases en programación orientada a objetos y la definición de estructuras algebraicas. Ya ha hecho explícita esta intuición en la definición de un deltoides que ha identificado algunas operaciones de interés. En términos más generales, este es el proceso de pensamiento subyacente a las descripciones algebraicas. Necesitamos identificar cuáles son nuestras operaciones y qué propiedades tienen. Este paso nos dice la estructura de tipo con la que estamos trabajando.
La segunda comprensión es que no solo estamos interesados en un conjunto de elementos sino en relaciones de abstracción. La formalización más simple que puedo imaginar de la abstracción es considerar un conjunto preordenado. Podemos pensar en un conjunto preordenado como una generalización estricta de un conjunto a algo que viene con una noción de aproximación incorporada.
Idealmente, queremos trabajar en un entorno donde las dos ideas anteriores sean ciudadanos de primera clase. Es decir, queremos una configuración escrita como la de un álgebra, pero también la configuración de aproximación de un preorden. Un primer paso en esta dirección es considerar una red. Una red es una estructura conceptual interesante porque podemos definirla de dos maneras equivalentes.
- ( L , ⊓ , ⊔ )a ⊑ ba ⊓ b = a
- ( L , ⊑ )L
Por lo tanto, una red es una estructura matemática que puede abordarse desde la perspectiva algebraica o de aproximación. La desventaja aquí es que los elementos de una red en sí no poseen una estructura de tipo que se tenga en cuenta en la relación de aproximación. Es decir, no podemos comparar elementos basados en la noción de tener más o menos estructura.
En el contexto de su problema, puede pensar en las categorías como una generalización natural de los pedidos anticipados que capturan tanto la noción de aproximación (en los morfismos) como la estructura de tipo en un entorno algebraico. La configuración de la teoría de categorías nos permite prescindir de varias distinciones innecesarias y centrarnos en la estructura de las entidades que le interesan y la aproximación de esa estructura. Las propiedades y adjuntos universales le brindan un vocabulario y herramientas muy potentes para comprender el panorama de las estructuras que le interesan y le permiten un tratamiento matemático riguroso incluso de nociones intuitivas, como diferentes niveles de abstracción.
Con respecto a mi comentario sobre los deltoides abstractos, parece que lo que quieres es una categoría. El deltoides abstracto es una categoría específica análoga a la categoría de conjuntos. Hay otras categorías que está considerando. Inicialmente pensé que estabas definiendo un deltoides que, en el sentido de la teoría de categorías, sería un objeto terminal (o final).
Estás estudiando el tipo de preguntas para las que la teoría de categorías proporciona respuestas muy satisfactorias. Espero que pueda llegar a esa conclusión usted mismo.
Referencias
- Interpretación abstracta y aplicación a programas lógicos , Patrick Cousot y Radhia Cousot. La primera mitad de este artículo es una introducción general de estilo tutorial al tema de la interpretación abstracta.
- Marcos de interpretación abstracta , Patrick Cousot y Radhia Cousot. Este artículo analiza todas las posibilidades que bosquejé anteriormente con respecto a las funciones de abstracción y concreción en gran detalle.
- Diseño sistemático de marcos de análisis de programas , Patrick Cousot y Radhia Cousot. Este fue el documento que introdujo la noción de jerarquías de abstracciones en el contexto de análisis del programa.
- Preservación fuerte generalizada por interpretación abstracta , Francesco Ranzato y Francesco Tapparo. Este artículo aplica estas ideas en un contexto diferente de abstracciones que preservan las fórmulas lógicas temporales. Encontrarás ejemplos trabajados de abstracciones booleanas y distributivas aquí.
- Interpretación abstracta, relaciones lógicas y extensiones Kan , Samson Abramsky. Presenta una perspectiva de teoría de categoría sobre el material teórico de orden anterior.