Representación formal de una jerarquía de abstracción.

9

Introducción

Estoy escribiendo mi tesis doctoral sobre Modelado Delta abstracto (ADM), una descripción algebraica abstracta de modificaciones (conocidas como deltas ) capaces de actuar sobre productos (como en 'productos de software'). Esto se puede usar para organizar un conjunto de productos relacionados (una 'línea de productos') como un producto básico simple y un conjunto de deltas aplicados condicionalmente, y así permitir una mayor reutilización de los artefactos subyacentes.

Los detalles del modelado delta no son realmente importantes para mi pregunta, pero ADM sirve como un buen ejemplo para explicar el problema, por lo que presentaré los conceptos más importantes.

Antecedentes

La estructura principal de interés es el deltoides . Productos provienen de un conjunto universal . Deltas provienen de un monoide con el operador de composición y elemento neutro . El operador de evaluación semántica transforma un delta 'sintáctico' en una relaciónP ( D , , ϵ ) : D × DD ϵ D [(PAGS,re,,ϵ,[[-]])PAGS(re,,ϵ):re×rereϵre d D [[[-]]:re2PAGS×PAGSrere[[re]]PAGS×PAGSque decide cómo puede modificar un producto.re

Pregunta

Como ADM es un álgebra abstracta, la mayor parte de mi trabajo se basa en la naturaleza concreta de los productos y deltas, y se prueban varios resultados sin descender a un nivel más concreto. Se espera que esos resultados se trasladen a un dominio más concreto, pero aún no lo he formalizado.

Hay ejemplos y estudios de casos que funcionan en un dominio concreto: código fuente orientado a objetos, código , números naturales, perfiles de teléfonos móviles, etc. También hay algunas etapas intermedias de abstracción como anidadas pares clave-valor. Para cada redefinir (o 'refinar') . ( P , D ,,ϵ, [LUNATmiX(PAGS,re,,ϵ,[[-]])

Me gustaría hacer explícita esta jerarquía: (1) para proporcionar una mayor claridad para el lector y (2) para justificar formalmente el uso de resultados de niveles más abstractos.

Mi pregunta: ¿Cómo debo organizar formalmente estos niveles de abstracción?

Espero poder razonar con una simple relación de refinamiento en deltoides. Y me siento como que podría ser definido simplemente apelando a la relación subconjunto de P y D . Pero aún no estoy seguro. ¿Existen enfoques existentes para el tipo de problema que estoy describiendo? ¿Publicaciones que debería leer?PAGSre

La jerarquía deltoides

Para darle una mejor idea de lo que quiero decir, aquí está la jerarquía de abstracción deltoides que tengo en mente:

  • Deltoides abstracto : este es el deltoide básico en el que los productos y deltas pueden ser cualquier cosa. La mayor parte de la teoría se basa en este y la mayoría de los resultados se prueban en este nivel.
    • Deltoides Relacional : Aquí, los deltas son relaciones en y [PAGS es la función de identidad. [[-]]
      • Deltoide funcional : aquí, los deltas son funcionales (o 'deterministas').
    • Deltoide de número natural : este es el deltoide concreto más simple, creado solo para ilustrar el refinamiento deltoides. Aquí, los productos son números naturales y los deltas D = N + son secuencias numéricas simples que representan operaciones polinómicas.PAGS=nortere=norte+
    • Deltoide de par clave-valor anidado : un nivel intermedio de abstracción para cualquier jerarquía en la que las claves se asignan a valores o sub-jerarquías. Deltas puede realizar modificaciones en este 'árbol' a cualquier profundidad.
      • OOP Deltoid : para representaciones abstractas de programas orientados a objetos. Básicamente son pares de valores clave anidados, porque los programas asignan nombres de módulos a conjuntos de clases, que asignan nombres de clases a conjuntos de métodos, que asignan nombres de métodos a implementaciones de métodos.
        • ABS Deltoid : ABS es un lenguaje de programación orientado a objetos real.
      • Perfil del teléfono deltoideo : aquí, un producto es una asignación plana de configuraciones (como volumen, brillo de pantalla, etc.) a valores de un dominio correspondiente.
    • deltoidesLUNATmiX: los productos son documentos X y los deltas los modifican redefiniendo macros.LUNATmiX

Bueno, eso debería darte una idea justa de lo que tengo en mente. Tenga en cuenta, por cierto, que para cualquier deltoides, Es un homomorfismo monoid de D al D ' perteneciente a la deltoides relacional correspondiente.[[-]]rere

La jerarquía real puede ser mayor. También puede estar organizado de manera diferente, según el tipo de teoría de refinamiento que usaré. Por ejemplo, si busco una relación de subconjunto simple en y D, el deltoide ABS no encajaría en el deltoide de par clave-valor anidado, ya que sus productos y deltas son en realidad texto plano (código fuente). Pero la jerarquía dada puede seguir funcionando si uso homomorfismos.PAGSre

mhelvens
fuente
3
¿Puedes hacer más explícito cuál es la jerarquía de abstracción? ¿Qué cosas son abstracciones de qué otras cosas?
Dave Clarke
¡Hola Dave! Actualicé mi pregunta. Espero que esto aclare un poco las cosas.
mhelvens
44
¿Qué tal construir categorías para cada tipo de deltoides, y luego estudiar los functores adjuntos izquierdo y derecho (si los hay) entre ellos?
Martin Berger
Me temo que no estoy bien versado en teoría de categorías. :-(
mhelvens

Respuestas:

8

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.

  1. 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.
  2. 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.(METRO,FMETRO)(norte,Fnorte)FMETRO:METROMETROFnorte:nortenorte

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:METROnorteh(FMETRO(una))=Fnorte(h(una))

Podemos ver las dos estructuras que aparecen arriba como estructuras pre ordenadas

y ( N , = , f N )(METRO,=,FMETRO)(norte,=,Fnorte)

y el homomorfismo que podemos reescribir para ser una función satisfactoria

  1. que si entonces h ( a ) = h ( b ) , yuna=sih(una)=h(si)
  2. para todo en M , h ( f M ( a ) ) = f N ( h ( a ) ) .unaMETROh(FMETRO(una))=Fnorte(h(una))

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 .(METRO,,FMETRO)(norte,,Fnorte)

Ahora, en lugar de homomorfismo, podemos tener una función de abstracción

que esα:METROnorte

  1. monótono, lo que significa que siempre que tenemos α ( a ) α ( b ) , yunasiα(una)α(si)
  2. semirremolques conmuta con las operaciones de: para todos una en M .α(FMETRO(una))Fnorte(α(una))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 ) ) .γ:norteMETROFMETRO(γ(si))γ(Fnorte(si))

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.

  1. (L,,)unasiunasi=una
  2. (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

  1. 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.
  2. 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.
  3. 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.
  4. 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í.
  5. 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.
Vijay D
fuente
Gracias por tu respuesta completa! Y la falta de categorías es muy apreciada. ;-) (Tendré que estudiar algo de teoría de categorías intermedias en el futuro.) Echaré un vistazo a sus referencias. - = # = - Mientras tanto, tengo una pregunta sobre su afirmación "el deltoides abstracto parece ser una familia de deltoides en lugar de un deltoide específico". ¿Podría explicar cómo el deltoides abstracto es diferente a este respecto de los demás? ¿No puede verse cualquier estructura algebraica como la familia de todos sus refinamientos?
mhelvens
@VijayD Gracias por la actualización en CT. Soy el culpable de hacer el comentario y luego lo borré. Creo profundamente que CT es más adecuado para el problema de OP. Estoy aún más convencido después de ver tu actualización. Creo que si el OP no quiere hacerlo usando CT, alguien más lo hará.
scaaahu
Parece muy probable que la teoría de categorías proporcione las mejores respuestas a mis preguntas. Y estoy ansioso por estudiarlo y comprender mejor esas respuestas. Y, de hecho, mi falta de tiempo para estudiar y aplicar la teoría de categorías no debería ser una excusa para dar una respuesta "inferior" en este sitio web. - = # = - Sin embargo, aprecio mucho la consideración de Vijay. Su respuesta en el nivel monoide fue bastante útil. - = # = - Entonces no puedo usar categorías en este momento. Pero definitivamente exploraré la opción en trabajos futuros. ¡Gracias a todos!
mhelvens
Estás en una excelente posición para retomar el tema porque tienes ante ti un problema que entiendes bien y puedes analizar directamente desde la perspectiva categórica. Considero que esta es la mejor manera de aprender algo y le insto a que no se demore porque los textos sobre teoría de categorías parecen intimidantes. Estoy seguro de que hay porciones del tamaño de un bocado para estudiar. Buena suerte para la defensa.
Vijay D
9

XX

δδ

δ

No estoy seguro de que quieras formalizar los teléfonos móviles LaTeX y Nokia demasiado en serio en la teoría general. Pero, por supuesto, su teoría debería ser aplicable a tales ejemplos (simplemente no se cuelgue cuando descubra que los teléfonos móviles en realidad no tienen una semántica bien definida).

Realmente te estás quedando corto insistiendo en una tecnología predeterminada (¿por tu asesor?), Por lo que parece.

Andrej Bauer
fuente
2
En general estoy de acuerdo contigo. Y nunca he usado tampoco como excusa. :-) Pero en este caso, la mayor parte de mi tesis ya está escrita y el monoide se ha utilizado en todas mis publicaciones. - = # = - Dicho esto, haces un excelente punto. En el ejemplo de la carcasa de plástico / metal, ahora lo manejo permitiendo la composición, pero haciendo que el delta resultante se evalúe en relación vacía (como habrás adivinado). Todo está bien definido, por lo que es suficiente por ahora. Pero puedo ver que tu sugerencia es más elegante. Me has dado otra buena razón para estudiar teoría de categorías. ¡Gracias!
mhelvens
@mhelvens Soy un ingeniero de software retirado que vive en la industria desde hace mucho tiempo. Llegó de vuelta a TCS después de la jubilación. Te haré una pregunta de la vida real. Supongamos que formaliza con éxito los productos de teléfonos Nokia usando monoid en su tesis, ¿qué va a decir en defensa oral si Apple anuncia que adquiere Nokia? ¿Ese anuncio romperá tu modelo? Me parece que cuanto más general es la teoría, mejor modelo sería.
scaaahu
@scaaahu Pregunta interesante. :-) Permítanme comenzar respondiendo: "No, para nada". La teoría es independiente del "tipo" de dispositivo. - = # = - Le aseguro que no hay necesidad de convencerme de los beneficios de la generalización. (De hecho, creo que a veces me excedo). Sucede que no encontré la teoría de categorías a tiempo para que fuera útil para mi trabajo de doctorado. Como dije, estoy de acuerdo en que puede ser un enfoque valioso. Pero dos meses después de la fecha límite de mi tesis no es el momento de cambiar mi enfoque fundamentalmente.
mhelvens
Claramente, estás listo para un postdoc ;-)
Andrej Bauer
Solicitud de subvención ya enviada. :-) Espero poder continuar en este campo.
mhelvens