Lý do về các vòng lặp không xác định


10

Đây là câu hỏi "theo dõi B" nếu có. Tóm tắt: điều đầu tiên tôi nghĩ đến khi tôi cố gắng đưa ra một ngữ nghĩa cho các chương trình không xác định sẽ dẫn đến một ngữ nghĩa mà tôi không thể chứng minh những điều về các vòng lặp chỉ chấm dứt tính không xác định. Chắc chắn ai đó đã tìm ra phải làm gì trong tình huống này, hoặc ít nhất chỉ ra rằng điều đó thật khó khăn, nhưng tôi không biết làm thế nào để tìm kiếm nó (do đó là thẻ "yêu cầu tham khảo").

Lý lịch

Tôi muốn mô hình hóa một ngôn ngữ trong khi không xác định. Tôi nghĩ rằng đây là cách rõ ràng (hoặc ít nhất là cách ngây thơ) để mô hình hóa một ngôn ngữ như vậy với tên miền quyền lực Smyth, nhưng hãy sửa tôi nếu tôi sai. Chúng tôi sẽ mô hình ý nghĩa của một câu lệnh trong ngôn ngữ này là như một hàm mà miền là tập hợp S của các quốc gia và có codomain là tập hợp P(S)={}P(S) , nơi là một yếu tố tối thiểu đại diện cho không chấm dứt và P(S) là quyền hạn của các quốc gia.

Chúng tôi giải thích các lệnh như bản đồ từ các tiểu bang σ cho một trong hai sự kiện không chấm dứt hoặc bộ của các quốc gia {σ1,σ2,} mà đại diện cho kết quả tốt. PQ là sự lựa chọn không xác định.

  • skipσ={σ}
  • x:=Eσ={σ[(Eσ)/x]}
  • abortσ=
  • E σ = t r u eQ σif E then P else Qσ=Pσ nếu , nếu khôngEσ=trueQσ
  • PQσ= nếu hoặc , nếu không thìPσ=P σ Q σQσ=PσQσ
  • P σ = Q τ = τ P σ τ P σQ τP;Qσ= nếu hoặc đối với một số , nếu khôngPσ=Qτ=τPστPσQτ

Có thứ tự một phần hoàn chỉnh theo chỉ thị , trong đó cho mọi và nếu cả và đều là các tập hợp và và chúng tôi có thể mở rộng hàm này thành các hàm từ đến theo chiều dọc: nếu cho mọi và là chức năng ánh xạ mọi trạng thái tới .S ' S 'P ( S ) S 1S 2 S 1 S 2 S 1S 2 f S P ( S ) f 1f 2 f 1 ( σ ) SSP(S)S1S2S1S2S1S2fSP(S)f1f2σ f f1(σ)f2(σ)σf

Ý nghĩa của một vòng lặp là là giới hạn trên của chuỗi , trong đó if , nếu không nếu hoặc đối với một số , nếu không . (Định nghĩa này giả định rằng tôi vừa xác định là Scott liên tục, nhưng tôi nghĩ an toàn khi để nó qua một bên.)f f ( f ) f ( f ( f ) ) ... f ( g ) ( σ ) = { σ } E ( σ ) = f một l s eP σ = while E do Pσff(f)f(f(f))f(g)(σ)={σ}E(σ)=falsePσ=τ P σ τ P σ g ( τ ) fg(τ)=τPστPσg(τ)f

Câu hỏi

Hãy xem xét chương trình này:

b : = t r u e ; w h i l e b d ox:=0;
b:=true;
while b do
x:=x+2;
b:=falseb:=true

Theo trực giác, đây là một vòng lặp có thể trả về bất kỳ số chẵn dương nào hoặc không chấm dứt và tương ứng với những gì chúng ta có thể chứng minh về vòng lặp này bằng cách sử dụng điều kiện tiên quyết tự do yếu nhất (có thể chỉ ra rằng là một vòng lặp bất biến). Tuy nhiên, vì vòng lặp có khả năng không chấm dứt (chúng ta có thể tinh chỉnh lựa chọn không xác định bởi chương trình luôn lấy nhánh bên phải), ý nghĩa của chương trình này được đưa ra cho bất kỳ trạng thái ban đầu nào là . (Ít thông tin hơn: hàm ánh xạ bất kỳ trạng thái nào trong đó là sai với chính nó và bất kỳ trạng thái nào mà đúng với là một điểm cố định của được sử dụng để xác định vòng lặp.)b b fn.x=2nbbf

Điều này có nghĩa là ngữ nghĩa ngây thơ mà tôi đề xuất không tương ứng theo cách tôi mong đợi có thể suy luận về các chương trình. Tôi đổ lỗi cho ngữ nghĩa của mình, nhưng không làm thế nào để sửa chúng.


4
Tôi nghĩ rằng bằng cách sử dụng làm tên miền theo nghĩa của chương trình, bạn đã từ bỏ một cách hiệu quả bất cứ điều gì về một chương trình có thể phân kỳ. Một suy nghĩ ngây thơ là sử dụng , nhưng tôi không biết liệu điều đó sẽ giới thiệu một vấn đề khác. P ({}P(S)P(S{})
Tsuyoshi Ito

Có, bạn hoàn toàn đúng khi nhìn vào tập , rõ ràng là hy vọng đã bị mất ngay cả trước khi chúng ta lấy ví dụ. Đề xuất của bạn cũng xảy ra với tôi, nhưng tôi nghĩ rằng bạn kết thúc với cùng một vấn đề trong ví dụ này là miễn là không chấm dứt tiềm năng được mô hình hóa bởi không phải là , và nếu chúng tôi đã chọn cái sau nó sẽ can thiệp vào khả năng của chúng tôi để tạo ý nghĩa cho một vòng lặp là một điểm ít cố định nhất theo cách thông thường. S { } { }{}P(S)S{}{}
Rob Simmons

Bạn đã xem Dynamic Logic chưa? Các ngữ nghĩa được đưa ra theo quan hệ từ trạng thái này đến trạng thái khác, và bạn có thể sử dụng logic để suy luận về tính đúng đắn một phần và toàn bộ, nghĩa là, các tính chất của tính toán chấm dứt và tất cả các tính toán chấm dứt với một thuộc tính nhất định.
Dave Clarke

Tôi chưa nghĩ về logic động trong cài đặt này, nhưng tôi thấy nó có liên quan như thế nào - tôi sẽ thấy Platzer và các sinh viên của anh ấy nghĩ gì khi tôi trở lại Pittsburgh.
Rob Simmons

Câu trả lời:


10

Trong [dB80] Phân tích của Hitchcock và Park về các tính chất chấm dứt của đệ quy được chứng minh là tương ứng với phân tích ngữ nghĩa dựa trên cái gọi là giải thích Egli-Milner về các mối quan hệ [Egl75, Plo76], thể hiện tính không điều kiện thất thường . Khái niệm này cho thấy rằng một mối quan hệ không xác định là chính xác nếu nó tạo ra ít nhất một tính toán dẫn đến một kết quả mong muốn (ngay cả khi có sự tính toán không rõ ràng). Điều này dường như tương ứng với những gì bạn đang cố gắng làm.

Tiếp theo mô tả ý nghĩa của câu lệnh là hàm ánh xạ từng trạng thái ban đầu sang một số trạng thái không trống, có thể chứa , do đó rất nghiêm ngặt theo nghĩa . Lựa chọn không xác định giữa các câu lệnh và được mô tả bằng chức năng ánh xạ từng trạng thái ban đầu thành liên kết các kết quả riêng lẻ . Do đó, bất cứ khi nào hoặcSfSσfSfS()={}S1S2σfS1(σ)fS2(σ)S1S2có khả năng không điều kiện tạo ra một kết quả không mong muốn, do đó, sự lựa chọn không điều kiện của họ cũng vậy. Khi tập hợp các trạng thái cuối cùng, người ta có được trong phân tích này, cái gọi là quyền hạn Egli-Milner của các trạng thái:

PE--M(S)={ sS | s là hữu hạn và không trống, hoặc chứa}

Tại sao các tập con vô hạn của không được coi là tập hợp các trạng thái cuối cùng có thể có trong mô hình này? Theo giả định rằng tất cả các khối xây dựng cơ bản của các thuật ngữ quan hệ chỉ tạo ra các tập hợp hữu hạn, không trống của các trạng thái cuối cùng có thể, một tập hợp vô hạn các trạng thái cuối cùng có thể chỉ có thể được tạo ra khi có thể tính toán vô hạn. Điều này có thể được nhìn thấy như sau. Cấu trúc tập hợp tất cả các tính toán có thể bắt đầu ở trạng thái đã cho dưới dạng cây có gốc và trạng thái là các nút. Tập hợp các lá sau đó chính xác là tập hợp các trạng thái cuối cùng có thể truy cập được từ , ngoại trừSσ0σ0σ0, có thể bị thiếu trong số các lá nhưng được thể hiện trong tập hợp các trạng thái cuối cùng bởi thực tế là có một con đường vô tận trong cây. Theo giả định ở trên, và vì chỉ có sự lựa chọn không hữu hạn hữu hạn, cây này được phân nhánh một cách hữu hạn. Do đó, chỉ có một số lượng lá hữu hạn ở bất kỳ độ sâu hữu hạn nào. Do đó, một số lượng vô hạn các trạng thái cuối cùng có thể chỉ có thể được tạo ra khi có sự tính toán vô hạn (một ứng dụng bổ đề của König [Kön32]).

(PE--M(S),E--M) là một vị trí cho được xác định bởi: cho ,E--Ms,tPE--M(S)

sE--Mt=(ss{}t)(ss=t) .

Ở đây, có thể được xem như một trình giữ chỗ thông qua đó -các tập hợp có thể được tạo bằng cách chèn thêm các trạng thái thay cho . Do đó, là phần tử nhỏ nhất của . Hơn nữa, poset sở hữu Gel cho -chains. Tương tự, các hàm nghiêm ngặt từ đến được sắp xếp một phần bởi phần mở rộng theo chiều dọc của . Hơn nữa, chức năng ít nhất làE - ME--M{ } ( P E - M ( S ) , E - M ) ( P E - M ( S ) , E - M ) ω S { } P E --M ( S ) E - M bước sóng σ . { } ω{}(PE--M(S),E--M)(PE--M(S),E--M)ωS{}PE--M(S)E--Mλσ.{} và lub của -chains các chức năng như vậy tồn tại, quá.ω

[dB80] JW de Bakker. Lý thuyết toán học về tính đúng đắn của chương trình . Hội trường Prentice, 1980.

[Egl75] H Egli. Một mô hình toán học cho các tính toán không phá hủy. Báo cáo kỹ thuật, ETH Zürich, 1975.

[Kön32] D König. Theorie der endlichen und unendlichen Graphen. Báo cáo kỹ thuật, Leipzig, 1932.

[Plo76] GD Plotkin. Một công trình xây dựng tên miền. Tạp chí SIAM về tính toán , 5 (3): 452-487, 1976.

Tuyên bố miễn trừ trách nhiệm: điều này được lấy gần như nguyên văn từ một cuốn sách mà tôi từng là đồng tác giả:

WP de Roever và K Engelhardt. Sàng lọc dữ liệu: Phương pháp chứng minh định hướng mô hình và so sánh chúng . Nhà xuất bản Đại học Cambridge, 1998.


4
Cụm từ "điều này được lấy gần như nguyên văn từ một cuốn sách mà tôi từng là đồng tác giả" có lẽ nên được đặt trước với "Extra Awesomeness:" chứ không phải "Disclaimer:" :-D. Cảm ơn, điều này rất hữu ích.
Rob Simmons

Một cách nhìn nondeterminism (và cách tôi muốn nhìn vào nó) là nó là một hình thức underspecification - một chương trình với một sự lựa chọn không xác định được tinh chế bằng các chương trình luôn có những lựa chọn hàng đầu, luôn luôn có lựa chọn thứ hai, hoặc (xem công việc mở rộng của McIver và Morgan trong lĩnh vực cụ thể này) chương trình có một lựa chọn hoặc lựa chọn khác với xác suất .5 . Vì vậy, vòng lặp không xác định không chấm dứt được tinh chỉnh bởi vòng lặp không bao giờ kết thúc và cũng bởi vòng lặp lật xu của bạn chấm dứt (với xác suất 1)
Rob Simmons
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.