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 × D → D ϵ ∈ D [ d ∈ D [que decide cómo puede modificar un producto.
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 ,⋅,ϵ, [
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?
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 [ 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.
- 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.
- 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.
- deltoides: los productos son documentos X y los deltas los modifican redefiniendo macros.
- Deltoides Relacional : Aquí, los deltas son relaciones en y [ es la función de identidad.
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.
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.
fuente
Respuestas:
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.
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
Un homomorfismo en el sentido de álgebra universal se vería así:
Podemos ver las dos estructuras que aparecen arriba como estructuras pre ordenadas
y el homomorfismo que podemos reescribir para ser una función satisfactoria
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
Ahora, en lugar de homomorfismo, podemos tener una función de abstracción
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 .norte METRO norte norte METRO norte
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 .METRO norte
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 .METRO norte norte METRO norte1 norte2 METRO
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.
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
fuente
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.
fuente