추상화 계층의 공식 표현


9

소개

나는 ( '소프트웨어 제품'에서와 같이) 제품 에 작용할 수있는 수정 ( 델타 라고도 함)에 대한 추상 대수적 설명 인 추상 델타 모델링 (ADM) 에 관한 박사 학위 논문을 쓰고 있습니다. 이를 통해 관련 제품 세트 ( '제품 라인')를 간단한 핵심 제품 및 조건부 적용 델타 세트로 구성하여 기본 아티팩트를 더 많이 재사용 할 수 있습니다.

델타 모델링의 세부 사항은 내 질문에 실제로 중요 하지 않지만 ADM은 문제를 설명하는 좋은 예입니다. 따라서 가장 중요한 개념을 소개하겠습니다.

배경

주요 관심 구조는 삼각근입니다 (,,,ϵ,[[]]). 범용 세트에서 제품. 델타는 단일체에서 나옵니다(,,ϵ) 구성 연산자 :× 중립 요소 ϵ. 시맨틱 평가 연산자[[]]:2× '구문 적'델타 변환 관계로 [[]]× 어떻게 결정 제품을 수정할 수 있습니다.

질문

ADM은 추상 대수이므로, 대부분의 작업은 제품과 델타의 구체적인 특성에서 요약되며,보다 구체적인 수준으로 내려 가지 않고 여러 결과가 입증됩니다. 이러한 결과는보다 구체적인 영역으로 이어질 것으로 예상되지만 아직 공식화하지는 않았습니다.

구체적인 영역에서 작동하는 예제와 사례 연구가 있습니다 : 객체 지향 소스 코드, 이자형엑스코드, 자연수, 휴대폰 프로파일 등. 중첩 된 키-값 쌍과 같은 중간 단계의 추상화도 있습니다. 각각의 재정의 (또는 '정의')(,,,ϵ,[[]]).

(1) 독자에게 더 명확성을 제공하고 (2) 더 추상적 인 수준의 결과를 사용하여 공식적으로 정당화하기 위해이 계층을 명시 적으로 만들고 싶습니다 .

내 질문 : 이러한 추상화 수준을 어떻게 공식적으로 구성해야합니까?

나는 간단한 정제 관계로 추론 할 수 있기를 바라고 있습니다. 삼각근에. 그리고 하위 집합 관계에 호소함으로써 간단히 정의 할 수 있다고 생각합니다.. 그러나 나는 아직 확실하지 않다. 내가 설명하는 문제에 대한 기존 접근 방식이 있습니까? 내가 읽어야 할 출판물?

델토 이드 계층

내가 의미하는 바에 대한 더 나은 아이디어를 제공하기 위해 내가 염두에 두었던 델타 이드 추상화 계층 구조가 있습니다.

  • Abstract Deltoid : 제품과 델타가 여전히 무엇이든 될 수있는 기본 델토 이드 입니다. 대부분의 이론은이 이론을 기반으로하며 대부분의 결과는이 수준에서 입증됩니다.
    • 관계형 델토 이드 : 델타는[[]] 항등 함수입니다.
      • 기능적 델토 이드 : 여기서 델타는 기능적 (또는 '결정적')입니다.
    • Natural Number Deltoid : 델타 이드 개선을 설명하기 위해 만들어진 가장 간단한 콘크리트 델토 이드 입니다. 여기 제품P=N 자연수와 델타 D=N+ 다항식 연산을 나타내는 간단한 숫자 시퀀스입니다.
    • 중첩 된 키-값 쌍 델토 이드 (Nested Key-Value Pair Deltoid) : 키가 값 또는 하위 계층에 매핑되는 모든 계층에 대한 중간 수준의 추상화입니다. 델타는이 '트리'에서 깊이를 수정할 수 있습니다.
      • OOP Deltoid : 객체 지향 프로그램의 추상적 표현. 프로그램은 모듈 이름을 클래스 세트에 맵핑하고 클래스 이름을 메소드 세트에 맵핑하며 메소드 이름을 메소드 구현에 맵핑하기 때문에 기본적으로 중첩 된 키-값 쌍입니다.
        • ABS Deltoid : ABS는 실제 객체 지향 프로그래밍 언어입니다.
      • Phone Profile Deltoid : 여기서 제품은 설정 (볼륨, 화면 밝기 등)을 해당 도메인의 값으로 평면 매핑합니다.
    • LATEXDeltoid : 제품은LATEX 문서와 델타는 매크로를 재정 의하여 수정합니다.

글쎄, 그것은 내가 당신이 생각하는 것에 대한 공정한 아이디어를 줄 것입니다. 그건 그렇고, 삼각근의 경우,[[]] 에서 monoid homomorphism입니다 D ~로 D 해당 관계형 삼각근에 속합니다.

실제 계층 구조가 더 클 수 있습니다. 내가 사용할 정제 이론의 종류에 따라 다르게 구성 될 수도 있습니다. 예를 들어, 간단한 하위 집합 관계를 살펴보면PDABS 델토 이드는 제품과 델타가 실제로 일반 텍스트 (소스 코드)이기 때문에 중첩 키-값 쌍 델토 이드에 맞지 않습니다. 그러나 동질성을 사용하면 주어진 계층 구조가 여전히 작동 할 수 있습니다.


3
추상화 계층이 무엇인지 더 명확하게 할 수 있습니까? 다른 것들의 추상화는 무엇입니까?
Dave Clarke

안녕 데이브! 내 질문을 업데이트했습니다. 나는 이것이 약간 명확하게되기를 바랍니다.
mhelvens

4
각 종류의 삼각근에 대한 범주를 구축 한 다음 왼쪽과 오른쪽 인접 펑터 (있는 경우)를 연구 해보십시오.
Martin Berger

나는 범주 이론에 정통하지 않은 것이 두렵다. :-(
mhelvens

답변:


8

격자 기반 프로그램 분석의 약간 다른 영역에서 유사한 질문에 대한 철저한 답변을 제공하는 추상적 해석 이론을 찾는 것이 도움이 될 것이라고 믿습니다.

대수 기반 프레임 워크를 사용하고있는 것 같습니다. 저는 여기서 대수학이라는 의미에서 대수라는 단어를 사용하고 있는데, 여기서 대수의 구조에 대한 제약은 용어 사이의 평등에 의해 주어진다고 가정합니다. 추상화 (또는 계층)가 그림에 들어가는 두 가지 다른 의미가 있습니다.

  1. 두 대수 사이의 관계로서의 추상화 한 대수는 다른 대수보다 풍부한 구조를 가지거나 한 대수로 해결할 수있는 모든 문제는 다른 대수로 해결할 수 있다고 말할 수 있습니다. 이런 종류의 관계는 공식화 된 구매 동질성 또는 대수학 간의 다른 매핑입니다.
  2. 대수 패밀리로 추상화 계층. 귀하의 경우, 이들은 특정 속성을 가진 삼각근의 가족입니다. 보다 일반적인 예로, 부분적으로 주문 된 모든 세트를 고려하십시오. 격자, 분산 격자 및 부울 격자는 더 많은 속성을 가진 하위 패밀리의 시퀀스로 생각할 수 있습니다.

두 개념은 서로 밀접한 관련이 있지만 다릅니다.

두 구조 사이의 추상화

추상 해석에 대한 통찰력은 고려한 구조에 순서 개념을 부여하는 것이 유용하다는 것입니다. 두 가지 구조를 고려

(M,fM)(N,fN)fM:MMfN:NN 관심있는 작업으로.

보편적 대수적 의미의 동질성은 다음과 같습니다.

h:MN 평등을 만족시키는 함수입니다 h(fM(a))=fN(h(a)).

위의 두 구조를 미리 정렬 된 구조로 볼 수 있습니다

(M,=,fM)(N,=,fN)

그리고 우리가 다시 쓸 수있는 동질성을 만족시키는 함수로

  1. 만약에 a=b 그때 h(a)=h(b),
  2. 모든 aM, h(fM(a))=fN(h(a)).

이제 다른 근사치 개념을 사용할 수 있다고 가정합니다. 예를 들어, 프로그램 검증에서 상태 세트를 처리 할 때 서브 세트 포함은 특정 애플리케이션에 적합하거나 자동 추론의 수식을 처리 할 때 의미가 있습니다. 더 일반적으로, 우리는 고려할 수 있습니다

(M,,fM)(N,,fN), 어디 선주문입니다.

이제 동형 대신에 추상화 기능을 가질 수 있습니다

α:미디엄 어느

  1. 모노톤은 우리는 α()α(),
  2. 연산을 사용한 세미 커뮤 트 : α(에프미디엄())에프(α()) 모든 미디엄.

추상화 함수는 구조가 구조의 추상화입니다 미디엄다음에 용어를 평가합니다. (근사치 개념과 관련하여 더 정확한 결과를 얻을 수 없음) )에서 같은 용어를 평가하는 것보다 미디엄 그런 다음에 매핑 .

이제 우리는 정제가 아닌 추상화의 관점에서 문제에 접근 할 필요가 있는지 물을 수있다. 의미, 우리는 말할 수 없다미디엄 의 개선입니다 용어를 사용하여 조건을 공식화합니다. 이것은 정확히 concretisation 함수 가하는 일입니다.

concretisation 기능 γ:미디엄모노톤 을 만족 부등식에프미디엄(γ())γ(에프()).

추상화 및 구체화 조건을 추상 해석에서 건전성 조건이라고합니다. 특별한 경우에는αγ갈루아 연결을 형성하는 경우 추상화 및 구체화 조건은 동일합니다. 일반적으로 이들은 동일하지 않습니다.

우리가 지금까지 한 모든 것은 한 쌍의 구조 사이의 추상화 개념만을 공식화합니다. 내가 말한 것은 범주 이론의 언어로 훨씬 간결하게 요약 할 수 있습니다. 위의 의견으로 인해 카테고리를 피했습니다.

추상화 계층

우리가 구조를 가지고 있다고 가정 미디엄선주문 및 일부 작업이 부여되었습니다. 우리는 모든 구조를 고려할 수 있습니다 그런 의 추상화입니다 미디엄위의 의미에서. 우리가 가지고 있다면1 의 추상화입니다 2 그리고 둘 다의 추상화입니다 미디엄계층 구조에는 세 가지 요소가 있습니다. 관계 는 '추상화 (abstractation of)'이므로 구조들 사이의 사전 순서를 정의 할 수 있습니다. 추상화 순서에 따라 계층 구조를 호출하자 .

귀하의 예를 고려하면 추상 삼각근이 일부 계층의 최대 요소의 후보가 될 수 있습니다. 추상 삼각근이 특정 삼각근이 아닌 삼각근의 패밀리 인 것처럼 보이기 때문에 확실하지 않습니다.

지금 할 수있는 것은 다른 계층을 고려하는 것입니다. 모든 삼각근의 계층입니다. 위에서 고려한 다양한 고려 사항을 기반으로하는 하위 계층 구조입니다. 추상 해석 컨텍스트의 특정 예는 주어진 전력 집합 격자와 Galois 연결에있는 완전한 격자의 계층 구조와 분배 계층 또는 부울 격자만으로 구성된 하위 계층 구조입니다.

Martin Berger가 주석에서 지적한 것처럼 계층 구조 간 추상화 개념은 범주 간 부속 개념에 의해 포착됩니다.

범주 적 관점

카테고리에 대한 추가 의견을 요청하는 의견이있었습니다. 그 의견은 더 이상 존재하지 않지만 어쨌든 응답하겠습니다.

뒤로 물러서서 삼각근을 설계 할 때 무엇을하고 있는지, 더 일반적인 관점에서 위에서 설명한 내용을 살펴 보겠습니다. 소프트웨어 컨텍스트에서 조작하는 엔티티의 필수 구조와 이러한 엔티티 간의 관계를 이해하는 데 관심이 있습니다.

첫 번째 중요한 실현은 우리가 요소 집합에만 관심이 아니라 해당 요소와 해당 작업의 속성에 대해 수행 할 수있는 작업에 관심이 있다는 것입니다. 이 직관은 객체 지향 프로그래밍의 클래스 디자인과 대수 구조의 정의를 주도합니다. 관심있는 몇 가지 조작을 식별 한 삼각근 정의에서이 직관을 이미 명시 적으로 작성했습니다. 보다 일반적으로, 이것은 대수적 설명의 기본이되는 사고 과정입니다. 우리는 우리의 작업이 무엇이며 어떤 속성이 있는지 식별해야합니다. 이 단계는 우리가 작업하고있는 타입 구조를 알려줍니다.

두 번째 실현은 우리가 요소의 집합에만 관심이 아니라 추상화 관계에 있다는 것입니다. 추상화를 상상할 수있는 가장 간단한 형식은 사전 주문 세트를 고려하는 것입니다. 우리는 사전 주문 세트를 근사 개념이 포함 된 무언가에 대한 세트의 엄격한 일반화라고 생각할 수 있습니다.

위의 두 가지 통찰력이 모두 일류 시민 인 환경에서 일하기를 원합니다. 즉, 대수와 같은 유형의 설정뿐만 아니라 사전 주문의 근사 인식 설정을 원합니다. 이 방향의 첫 번째 단계는 격자를 고려하는 것입니다. 격자는 두 가지 방법으로 정의 할 수 있기 때문에 개념적으로 흥미로운 구조입니다.

  1. 격자를 방정식으로 집합으로 정의 할 수 있습니다 (,,)회의 및 조인 작업을 갖추고 있습니다. 그런 다음 다음 을 정의하여 부분 순서 를 도출 할 수 있습니다. 언제든 개최 =.
  2. 대안은 격자를 부분적으로 정렬 된 세트로 정의하는 것입니다 (,) 요소의 모든 쌍을 만족 고유 한 가장 큰 하한과 가장 낮은 상한이 있습니다. 그런 다음 부분 순서에서 모임 및 참여 작업 을 파생 시킬 수 있습니다 .

따라서 격자는 대수 또는 근사 관점에서 접근 할 수있는 수학적 구조입니다. 여기서 결점은 격자의 요소 자체가 근사 관계에 영향을받는 유형 구조를 가지고 있지 않다는 것입니다. 즉, 우리는 구조가 다소 있다는 개념에 따라 요소를 비교할 수 없습니다.

문제의 맥락에서 범주를 대수적 설정에서 근사치 (모피 즘)와 유형 구조를 모두 포착하는 사전 주문의 자연적인 일반화로 생각할 수 있습니다. 카테고리 이론의 설정을 통해 우리는 다양한 불필요한 구별을 생략하고 관심있는 엔티티의 구조와 해당 구조의 근사에 초점을 맞출 수 있습니다. 보편적 인 속성과 부가 기능은 관심있는 구조의 풍경을 이해할 수있는 매우 강력한 어휘와 도구를 제공하며, 다른 추상화 수준과 같은 직관적 인 개념까지도 엄격한 수학적 처리를 가능하게합니다.

추상 삼각근에 대한 내 의견에 관해서는 원하는 것이 카테고리 인 것으로 보입니다. 추상 삼각근은 집합 범주와 유사한 특정 범주입니다. 고려중인 다른 카테고리가 있습니다. 나는 처음에 당신이 범주 이론의 의미에서 삼각근을 정의하고 있다고 생각한다고 생각했습니다.

당신은 범주 이론이 매우 만족스러운 답변을 제공하는 종류의 질문들을 연구하고 있습니다. 나는 당신이 그 결론에 스스로 올 수 있기를 바랍니다.

참고 문헌

  1. 논리 프로그램 , Patrick Cousot 및 Radhia Cousot에 대한 추상 해석 및 적용 . 이 기사의 전반부는 추상 해석 주제에 대한 일반적인 튜토리얼 스타일 소개입니다.
  2. 추상 해석 프레임 워크 , Patrick Cousot 및 Radhia Cousot. 이 기사에서는 추상화 및 구체화 기능과 관련하여 위에서 스케치 한 모든 가능성에 대해 자세히 설명합니다.
  3. 프로그램 분석 프레임 워크 , Patrick Cousot 및 Radhia Cousot 의 체계적인 설계 이 논문은 프로그램 분석 맥락에서 추상화 계층의 개념을 소개 한 논문이었다.
  4. 추상 해석 , Francesco Ranzato 및 Francesco Tapparo에 의한 일반화 된 강력한 보존 . 본 논문은 시간적 논리 공식을 보존하는 추상화의 다른 맥락에서 이러한 아이디어를 적용한다. 부울 및 분산 추상화의 작동 예를 여기서 찾을 수 있습니다.
  5. Samson Abramsky. 추상 해석, 논리 관계 및 Kan 확장 위의 오더 이론 재료에 대한 범주 이론적 관점을 제시합니다.

당신의 철저한 답변에 감사드립니다! 그리고 범주의 부족은 대단히 높이 평가됩니다. ;-) (나중에 일부 중간 범주 이론을 연구해야 할 것입니다.) 나는 당신의 참고 문헌을 살펴볼 것입니다. -= # =-그동안 "추상 삼각근이 특정 삼각근이 아닌 삼각근의 패밀리 인 것 같습니다"라는 질문에 대한 질문이 있습니다. 이 점에서 추상 삼각근이 다른 점과 어떻게 다른지 설명해 주시겠습니까? 대수적 구조가 모든 세분화의 패밀리로 볼 수 없습니까?
mhelvens

@VijayD CT 업데이트에 감사드립니다. 나는 논평을 한 후 유죄를 선고했다. CT가 OP의 문제에 더 적합하다고 생각합니다. 업데이트를 확인한 후 더 확신합니다. OP가 CT를 사용하여 원하지 않는다면 다른 누군가가 할 것이라고 생각합니다.
scaaahu

카테고리 이론이 내 질문에 가장 잘 맞는 것 같습니다. 그리고 나는 그것을 연구하고 그 답을 더 잘 이해하기를 고대하고 있습니다. 실제로, 범주 이론을 연구하고 적용 할 시간이 부족하다고해서이 웹 사이트에서 '열등한'답변을한다고 변명해서는 안됩니다. -= # =-그럼에도 불구하고 Vijay의 고려에 크게 감사드립니다. monoid 수준에 대한 그의 대답은 매우 유용했습니다. -= # =-그래서 지금은 카테고리를 사용할 수 없습니다. 그러나 앞으로의 작업에서 옵션을 확실히 탐구 할 것입니다. 모두 감사합니다!
mhelvens

당신은 당신이 잘 이해하고 범주 적 관점에서 직접 분석 할 수있는 문제가 있기 때문에 주제를 선택할 수있는 훌륭한 위치에 있습니다. 나는 이것이 무언가를 배우는 가장 좋은 방법이라고 생각하며 카테고리 이론에 관한 텍스트는 위협적인 것처럼 보이기 때문에 지체하지 말 것을 권고합니다. 공부해야 할 한 입 크기의 부분이 있다고 확신합니다. 방어에 행운을 빕니다.
Vijay D

9

박사 학위를 받고 있습니다. "나는 정통하지 않다엑스"는 변명이 아닙니다. 그리고 만약 당신이 좋다면"내 조언자는 모른다 엑스"도 변명이 아닙니다.

카테고리를 사용해야하는 곳에서 모노 아이디를 사용하고 있습니다. 당신의 monoid 작업은 당신이 어떤 것을 결합 할 수 있다고 가정합니다δ함께 있습니다. 예를 들어, "플라스틱 케이스 추가"와 "금속 케이스 추가"를 어떻게 구성 하시겠습니까? 나는 당신의 일부를 생각δ의미가 없기 때문에 빈 관계가 발생합니다. 그런 종류의 것을 의심해야합니다.

관심있는 관찰자로서, monoid는 카테고리 여야하므로 두 가지를 구성 할 수 있습니다. δ그것들이 구성되는 것이 의미가있는 경우에만 가능합니다. 그렇다면 의미 론적 평가는 집합과 관계의 범주에 불과합니다. 그리고 당신은 당신이 사용할 수있는 다른 많은 범주가 있음을 알 수 있습니다. 함수 델타는 집합 및 함수 범주에 매핑되는 functor에 해당하며, 자연수 델토 이드는 자연수에 대한 다항식의 monoid에 대한 functor입니다 (범주로 표시됨).

LaTeX 및 Nokia 휴대폰을 일반 이론에서 너무 심각하게 공식화하고 싶지는 않습니다. 그러나 물론 이론은 그러한 예에 적용 할 수 있어야합니다 (휴대 전화에 실제로 정의 된 의미가없는 것을 발견했을 때 끊지 마십시오).

당신은 미리 결정된 기술 (고문에 의해?)을 고집함으로써 자신 에게 부족함을 느끼고 있습니다.


2
일반적으로 나는 당신에게 동의합니다. 그리고 나는 결코 변명으로 사용한 적이 없다. :-) 그러나이 경우에, 나의 논문의 대부분은 이미 작성되었고 모든 논문에서 monoid가 사용되었습니다. -= # =-말하자면, 당신은 훌륭한 지적을합니다. 플라스틱 / 금속 케이스 예제에서는 이제 컴포지션을 허용하지만 결과 델타가 빈 관계로 평가되도록함으로써 처리합니다. 모두 잘 정의되어 있으므로 지금은 충분합니다. 그러나 나는 당신의 제안이 더 우아하다는 것을 알 수 있습니다. 카테고리 이론을 공부해야 할 또 다른 이유가 있습니다. 감사!
mhelvens

@mhelvens 저는 업계에서 오랫동안 은퇴 한 소프트웨어 엔지니어입니다. 퇴직 후 TCS로 돌아 왔습니다 . 나는 당신에게 실제 질문을 할 것입니다. 논문에서 monoid를 사용하여 Nokia 전화 제품을 성공적으로 공식화한다고 가정합니다. Apple이 Nokia를 인수한다고 발표하면 구술 방안에 무엇을 말해야합니까? 그 발표가 당신의 모델을 어길까요? 이론이 더 일반적 일수록 더 나은 모델이 될 것 같습니다.
scaaahu

@scaaahu 재미있는 질문입니다. :-) "아니요, 전혀 아니에요"라고 대답하겠습니다. 이론은 장치의 '유형'과 무관합니다. -= # =-일반화의 이점에 대해 설득 할 필요가 없습니다. (사실, 때로는 과도하다고 생각합니다.) 박사 학위에 도움이되기 위해 시간이 지남에 따라 범주 이론을 접하지 않은 경우가 있습니다. 내가 말했듯이, 나는 그것이 가치있는 접근법 일 수 있다는 데 동의합니다. 그러나 논문 마감일로부터 2 개월은 나의 접근 방식을 근본적으로 바꿀 때가 아닙니다.
mhelvens

분명히, 당신은 postdoc을위한 준비가되어 있습니다 ;-)
Andrej Bauer

보조금 신청서가 이미 발송되었습니다. :-)이 분야에서 계속할 수 있기를 바랍니다.
mhelvens
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.