격자 기반 프로그램 분석의 약간 다른 영역에서 유사한 질문에 대한 철저한 답변을 제공하는 추상적 해석 이론을 찾는 것이 도움이 될 것이라고 믿습니다.
대수 기반 프레임 워크를 사용하고있는 것 같습니다. 저는 여기서 대수학이라는 의미에서 대수라는 단어를 사용하고 있는데, 여기서 대수의 구조에 대한 제약은 용어 사이의 평등에 의해 주어진다고 가정합니다. 추상화 (또는 계층)가 그림에 들어가는 두 가지 다른 의미가 있습니다.
- 두 대수 사이의 관계로서의 추상화 한 대수는 다른 대수보다 풍부한 구조를 가지거나 한 대수로 해결할 수있는 모든 문제는 다른 대수로 해결할 수 있다고 말할 수 있습니다. 이런 종류의 관계는 공식화 된 구매 동질성 또는 대수학 간의 다른 매핑입니다.
- 대수 패밀리로 추상화 계층. 귀하의 경우, 이들은 특정 속성을 가진 삼각근의 가족입니다. 보다 일반적인 예로, 부분적으로 주문 된 모든 세트를 고려하십시오. 격자, 분산 격자 및 부울 격자는 더 많은 속성을 가진 하위 패밀리의 시퀀스로 생각할 수 있습니다.
두 개념은 서로 밀접한 관련이 있지만 다릅니다.
두 구조 사이의 추상화
추상 해석에 대한 통찰력은 고려한 구조에 순서 개념을 부여하는 것이 유용하다는 것입니다. 두 가지 구조를 고려
(M,fM) 과 (N,fN)와 fM:M→M 과 fN:N→N 관심있는 작업으로.
보편적 대수적 의미의 동질성은 다음과 같습니다.
h:M→N 평등을 만족시키는 함수입니다 h(fM(a))=fN(h(a)).
위의 두 구조를 미리 정렬 된 구조로 볼 수 있습니다
(M,=,fM) 과 (N,=,fN)
그리고 우리가 다시 쓸 수있는 동질성을 만족시키는 함수로
- 만약에 a=b 그때 h(a)=h(b),
- 모든 a 에 M, h(fM(a))=fN(h(a)).
이제 다른 근사치 개념을 사용할 수 있다고 가정합니다. 예를 들어, 프로그램 검증에서 상태 세트를 처리 할 때 서브 세트 포함은 특정 애플리케이션에 적합하거나 자동 추론의 수식을 처리 할 때 의미가 있습니다. 더 일반적으로, 우리는 고려할 수 있습니다
(M,⪯,fM) 과 (N,⊑,fN), 어디 ⪯ 과 ⊑ 선주문입니다.
이제 동형 대신에 추상화 기능을 가질 수 있습니다
α : M→ N 어느
- 모노톤은 a ⪯ b 우리는 α ( a ) ⊑ α ( b ),
- 연산을 사용한 세미 커뮤 트 : α (에프미디엄( ) ) ⊑에프엔( α ( a ) ) 모든 ㅏ 에 미디엄.
추상화 함수는 구조가 엔 구조의 추상화입니다 미디엄다음에 용어를 평가합니다. 엔 (근사치 개념과 관련하여 더 정확한 결과를 얻을 수 없음) 엔)에서 같은 용어를 평가하는 것보다 미디엄 그런 다음에 매핑 엔.
이제 우리는 정제가 아닌 추상화의 관점에서 문제에 접근 할 필요가 있는지 물을 수있다. 의미, 우리는 말할 수 없다미디엄 의 개선입니다 엔용어를 사용하여 조건을 공식화합니다. 이것은 정확히 concretisation 함수 가하는 일입니다.
concretisation 기능 γ: N→ M인 모노톤 을 만족 부등식에프미디엄( γ( B ) ) ⪯ γ(에프엔( b ) ).
추상화 및 구체화 조건을 추상 해석에서 건전성 조건이라고합니다. 특별한 경우에는α 과 γ갈루아 연결을 형성하는 경우 추상화 및 구체화 조건은 동일합니다. 일반적으로 이들은 동일하지 않습니다.
우리가 지금까지 한 모든 것은 한 쌍의 구조 사이의 추상화 개념만을 공식화합니다. 내가 말한 것은 범주 이론의 언어로 훨씬 간결하게 요약 할 수 있습니다. 위의 의견으로 인해 카테고리를 피했습니다.
추상화 계층
우리가 구조를 가지고 있다고 가정 미디엄선주문 및 일부 작업이 부여되었습니다. 우리는 모든 구조를 고려할 수 있습니다엔 그런 엔 의 추상화입니다 미디엄위의 의미에서. 우리가 가지고 있다면엔1 의 추상화입니다 엔2 그리고 둘 다의 추상화입니다 미디엄계층 구조에는 세 가지 요소가 있습니다. 관계 는 '추상화 (abstractation of)'이므로 구조들 사이의 사전 순서를 정의 할 수 있습니다. 추상화 순서에 따라 계층 구조를 호출하자 .
귀하의 예를 고려하면 추상 삼각근이 일부 계층의 최대 요소의 후보가 될 수 있습니다. 추상 삼각근이 특정 삼각근이 아닌 삼각근의 패밀리 인 것처럼 보이기 때문에 확실하지 않습니다.
지금 할 수있는 것은 다른 계층을 고려하는 것입니다. 모든 삼각근의 계층입니다. 위에서 고려한 다양한 고려 사항을 기반으로하는 하위 계층 구조입니다. 추상 해석 컨텍스트의 특정 예는 주어진 전력 집합 격자와 Galois 연결에있는 완전한 격자의 계층 구조와 분배 계층 또는 부울 격자만으로 구성된 하위 계층 구조입니다.
Martin Berger가 주석에서 지적한 것처럼 계층 구조 간 추상화 개념은 범주 간 부속 개념에 의해 포착됩니다.
범주 적 관점
카테고리에 대한 추가 의견을 요청하는 의견이있었습니다. 그 의견은 더 이상 존재하지 않지만 어쨌든 응답하겠습니다.
뒤로 물러서서 삼각근을 설계 할 때 무엇을하고 있는지, 더 일반적인 관점에서 위에서 설명한 내용을 살펴 보겠습니다. 소프트웨어 컨텍스트에서 조작하는 엔티티의 필수 구조와 이러한 엔티티 간의 관계를 이해하는 데 관심이 있습니다.
첫 번째 중요한 실현은 우리가 요소 집합에만 관심이 아니라 해당 요소와 해당 작업의 속성에 대해 수행 할 수있는 작업에 관심이 있다는 것입니다. 이 직관은 객체 지향 프로그래밍의 클래스 디자인과 대수 구조의 정의를 주도합니다. 관심있는 몇 가지 조작을 식별 한 삼각근 정의에서이 직관을 이미 명시 적으로 작성했습니다. 보다 일반적으로, 이것은 대수적 설명의 기본이되는 사고 과정입니다. 우리는 우리의 작업이 무엇이며 어떤 속성이 있는지 식별해야합니다. 이 단계는 우리가 작업하고있는 타입 구조를 알려줍니다.
두 번째 실현은 우리가 요소의 집합에만 관심이 아니라 추상화 관계에 있다는 것입니다. 추상화를 상상할 수있는 가장 간단한 형식은 사전 주문 세트를 고려하는 것입니다. 우리는 사전 주문 세트를 근사 개념이 포함 된 무언가에 대한 세트의 엄격한 일반화라고 생각할 수 있습니다.
위의 두 가지 통찰력이 모두 일류 시민 인 환경에서 일하기를 원합니다. 즉, 대수와 같은 유형의 설정뿐만 아니라 사전 주문의 근사 인식 설정을 원합니다. 이 방향의 첫 번째 단계는 격자를 고려하는 것입니다. 격자는 두 가지 방법으로 정의 할 수 있기 때문에 개념적으로 흥미로운 구조입니다.
- 격자를 방정식으로 집합으로 정의 할 수 있습니다 ( L , ⊓ , ⊔ )회의 및 조인 작업을 갖추고 있습니다. 그런 다음 다음 을 정의하여 부분 순서 를 도출 할 수 있습니다.a ⊑ b 언제든 개최 a ⊓ b = a.
- 대안은 격자를 부분적으로 정렬 된 세트로 정의하는 것입니다 ( L , ⊑ ) 요소의 모든 쌍을 만족 엘고유 한 가장 큰 하한과 가장 낮은 상한이 있습니다. 그런 다음 부분 순서에서 모임 및 참여 작업 을 파생 시킬 수 있습니다 .
따라서 격자는 대수 또는 근사 관점에서 접근 할 수있는 수학적 구조입니다. 여기서 결점은 격자의 요소 자체가 근사 관계에 영향을받는 유형 구조를 가지고 있지 않다는 것입니다. 즉, 우리는 구조가 다소 있다는 개념에 따라 요소를 비교할 수 없습니다.
문제의 맥락에서 범주를 대수적 설정에서 근사치 (모피 즘)와 유형 구조를 모두 포착하는 사전 주문의 자연적인 일반화로 생각할 수 있습니다. 카테고리 이론의 설정을 통해 우리는 다양한 불필요한 구별을 생략하고 관심있는 엔티티의 구조와 해당 구조의 근사에 초점을 맞출 수 있습니다. 보편적 인 속성과 부가 기능은 관심있는 구조의 풍경을 이해할 수있는 매우 강력한 어휘와 도구를 제공하며, 다른 추상화 수준과 같은 직관적 인 개념까지도 엄격한 수학적 처리를 가능하게합니다.
추상 삼각근에 대한 내 의견에 관해서는 원하는 것이 카테고리 인 것으로 보입니다. 추상 삼각근은 집합 범주와 유사한 특정 범주입니다. 고려중인 다른 카테고리가 있습니다. 나는 처음에 당신이 범주 이론의 의미에서 삼각근을 정의하고 있다고 생각한다고 생각했습니다.
당신은 범주 이론이 매우 만족스러운 답변을 제공하는 종류의 질문들을 연구하고 있습니다. 나는 당신이 그 결론에 스스로 올 수 있기를 바랍니다.
참고 문헌
- 논리 프로그램 , Patrick Cousot 및 Radhia Cousot에 대한 추상 해석 및 적용 . 이 기사의 전반부는 추상 해석 주제에 대한 일반적인 튜토리얼 스타일 소개입니다.
- 추상 해석 프레임 워크 , Patrick Cousot 및 Radhia Cousot. 이 기사에서는 추상화 및 구체화 기능과 관련하여 위에서 스케치 한 모든 가능성에 대해 자세히 설명합니다.
- 프로그램 분석 프레임 워크 , Patrick Cousot 및 Radhia Cousot 의 체계적인 설계 이 논문은 프로그램 분석 맥락에서 추상화 계층의 개념을 소개 한 논문이었다.
- 추상 해석 , Francesco Ranzato 및 Francesco Tapparo에 의한 일반화 된 강력한 보존 . 본 논문은 시간적 논리 공식을 보존하는 추상화의 다른 맥락에서 이러한 아이디어를 적용한다. 부울 및 분산 추상화의 작동 예를 여기서 찾을 수 있습니다.
- Samson Abramsky. 추상 해석, 논리 관계 및 Kan 확장 위의 오더 이론 재료에 대한 범주 이론적 관점을 제시합니다.