Đâ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 của các quốc gia và có codomain là tập hợp , nơi là một yếu tố tối thiểu đại diện cho không chấm dứt và 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 mà đại diện cho kết quả tốt. là sự lựa chọn không xác định.
- ⟦ E ⟧ σ = t r u e ⟦ Q ⟧ σ nếu , nếu không
- nếu hoặc , nếu không thì⟦ P ⟧ σ ∪ ⟦ Q ⟧ σ
- ⟦ P ⟧ σ = ⊥ ⟦ Q ⟧ τ = ⊥ τ ∈ ⟦ P ⟧ σ ⋃ τ ∈ ⟦ P ⟧ σ ⟦ Q ⟧ τ nếu hoặc đối với một số , nếu không
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 1 ⊑ S 2 S 1 S 2 S 1 ⊇ S 2 f S P ( S ) ⊥ f 1 ⊑ f 2 f 1 ( σ ) ⊑σ 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 e ⊥ ⟦ P ⟧ σ = ⊥τ ∈ ⟦ 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 o
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 ⊥ f
Đ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.