Inilah pertanyaan "trek B" jika ada. Ringkasan: hal pertama yang saya pikirkan ketika saya mencoba memberikan semantik untuk program-program non-deterministik menghasilkan semantik di mana saya tidak dapat membuktikan hal-hal tentang loop yang hanya mengakhiri non-deterministik. Tentunya seseorang telah mengetahui apa yang harus dilakukan dalam situasi ini, atau setidaknya menunjukkan bahwa itu sulit, tetapi saya tidak tahu bagaimana cara mencarinya (karena itu tag "permintaan referensi").
Latar Belakang
Saya ingin memodelkan bahasa sementara dengan non-determinisme. Saya pikir ini adalah cara yang jelas (atau paling tidak naif) untuk memodelkan bahasa seperti itu dengan domain kekuasaan Smyth, tetapi koreksi saya jika saya salah. Kami akan memodelkan arti perintah dalam bahasa ini adalah sebagai fungsi yang domainnya adalah himpunan negara dan yang kodomainnya adalah himpunan , di mana adalah elemen paling tidak mewakili non-terminasi dan adalah set negara.
Kami menginterpretasikan perintah sebagai peta dari status ke peristiwa non-penghentian atau untuk menetapkan status yang mewakili kemungkinan hasil. adalah pilihan non-deterministik.
- jika , jika tidak
- jika atau , jika tidak
- ⟦ P ⟧ σ = ⊥ ⟦ Q ⟧ τ = ⊥ τ ∈ ⟦ P ⟧ σ ⋃ τ ∈ ⟦ P ⟧ σ ⟦ Q ⟧ τ jika atau untuk beberapa , jika tidak
Ada perintah parsial lengkap yang diarahkan , di mana untuk dan jika dan adalah set yang tepat dan , dan kami dapat memperluas ini ke fungsi dari ke menunjuk: jika untuk setiap , dan adalah fungsi yang memetakan setiap negara bagian ke .⊥ ⊑ 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 2 ( σ ) σ f ⊥ ⊥,
Arti dari sebuah loop adalah adalah batas paling atas dari rantai , di mana jika , selain itu jika atau untuk beberapa , jika tidak . (Definisi ini mengasumsikan bahwa baru saja saya definisikan adalah Scott berkelanjutan, tetapi saya pikir aman untuk mengabaikannya.)f ⊥ ⊑ f ( f ⊥ ) ⊑ f ( f ( f ⊥ ) ) ⊑ ... f ( g ) ( σ ) = { σ } ⟦ E ⟧ ( σ ) = f a l s e ⊥ ⟦ P ⟧ σ = ⊥τ ∈ ⟦ P ⟧ σ ⋃ τ ∈ ⟦ P ⟧ σ g ( τ ) f
Pertanyaan
Pertimbangkan program ini:
b : = t r u e ; w h i l e b d o
Secara intuitif, ini adalah loop yang dapat mengembalikan bilangan positif positif atau tidak berakhir, dan yang sesuai dengan apa yang dapat kita buktikan tentang loop ini menggunakan prasyarat liberal terlemah (dimungkinkan untuk menunjukkan bahwa adalah sebuah loop invarian). Namun, karena loop memiliki kemampuan untuk tidak mengakhiri (kita dapat memperbaiki pilihan non-deterministik oleh program yang selalu mengambil cabang kanan), arti dari program ini diberikan setiap keadaan awal adalah . (Kurang informal: fungsi yang memetakan keadaan mana saja di mana salah untuk dirinya sendiri dan setiap keadaan di mana adalah benar untuk adalah titik tetap dari digunakan untuk mendefinisikan loop.)⊥ b b ⊥ f
Ini berarti bahwa semantik naif yang saya usulkan tidak sesuai dengan cara yang saya harapkan dapat beralasan tentang program. Saya menyalahkan semantik saya, tetapi tidak bisa memperbaikinya.
sumber
Jawaban:
Dalam [dB80] analisis Hitchcock dan Park tentang sifat terminasi rekursi terbukti sesuai dengan analisis semantik berdasarkan apa yang disebut interpretasi hubungan Egli-Milner [Egl75, Plo76], yang mengekspresikan nondeterminisme yang tidak menentu . Gagasan ini menangkap bahwa persatuan hubungan nondeterministik benar jika menghasilkan setidaknya satu perhitungan yang mengarah ke hasil yang diinginkan (bahkan di hadapan perhitungan nonterminating). Ini tampaknya sesuai dengan apa yang Anda coba lakukan.
Selanjutnya, makna pernyataan sebagai fungsi memetakan setiap status awal ke beberapa set status , mungkin mengandung , sehingga ketat dalam arti bahwa . Pilihan nondeterministik antara pernyataan dan dijelaskan oleh fungsi memetakan setiap keadaan awal ke penyatuan hasil individu . Jadi, kapan pun atauf S σ ⊥ f S f S ( ⊥ ) = { ⊥ } S 1 S 2 σ f S 1 ( σ ) ∪ f S 2 ( σ ) S 1 S 2S fS σ ⊥ fS fS(⊥)={⊥} S1 S2 σ fS1(σ)∪fS2(σ) S1 S2 memiliki kemungkinan nondeterministik untuk menghasilkan hasil yang tidak diinginkan, maka demikian juga pilihan nondeterministik mereka. Sebagai set hasil negara final yang diperoleh dalam analisis ini, yang disebut Egli-Milner powerset of States:
⊥}PE--M(S)={ s⊆S⊥ | s adalah terbatas dan tidak kosong, atau mengandung⊥}
Mengapa himpunan bagian tak terbatas tidak dianggap sebagai set keadaan akhir dalam model ini? Di bawah asumsi bahwa semua blok bangunan dasar dari istilah relasional hanya menghasilkan set terbatas, nonempty dari keadaan akhir yang mungkin, set tak terbatas dari keadaan akhir yang mungkin hanya dapat dihasilkan ketika perhitungan tak terbatas dimungkinkan. Ini bisa dilihat sebagai berikut. Struktur himpunan semua perhitungan yang mungkin dimulai dengan status yang diberikan sebagai pohon dengan root dan menyatakan sebagai node. Set daun kemudian set persis keadaan akhir yang mungkin dicapai dari , kecuali untukσ 0 σ 0 σ 0 ⊥S σ0 σ0 σ0 ⊥ , yang mungkin hilang di antara daun tetapi diwakili dalam set keadaan akhir oleh fakta bahwa ada jalan yang tak terbatas di pohon. Dengan asumsi di atas, dan karena hanya pilihan terbatas nondeterministik yang tersedia, pohon ini bercabang dengan baik. Dengan demikian, hanya ada sejumlah daun hingga pada kedalaman tertentu. Akibatnya jumlah tak terbatas dari keadaan akhir yang mungkin hanya dapat dihasilkan dengan adanya perhitungan tak terbatas (aplikasi lemma König [Kön32]).
⊑ E - M s , t ∈ P E - M ( S )(PE--M(S),⊑E--M) adalah poset untuk
didefinisikan oleh: untuk ,⊑E--M s,t∈PE--M(S)
Di sini, dapat dilihat sebagai placeholder di mana -greater set dapat dihasilkan dengan memasukkan lebih banyak status sebagai pengganti . Karena itu, adalah elemen terkecil dari . Selanjutnya, poset memiliki lub's untuk chain. Demikian pula, fungsi ketat dari hingga sebagian dipesan oleh ekstensi . Selain itu, fungsi yang paling sedikit adalah⊑ E - M ⊥ { ⊥ } ( P E - M ( S ) , ⊑ E - M ) ( P E - M ( S ) , ⊑ E - M ) ω S ∪ { ⊥ } P E --M ( S ) ⊑ E - M λ σ . { ⊥ } ω⊥ ⊑E--M ⊥ {⊥} (PE--M(S),⊑E--M) (PE--M(S),⊑E--M) ω S∪{⊥} PE--M(S) ⊑E--M λσ.{⊥} dan lub's of -chains dari fungsi tersebut juga ada.ω
[dB80] JW de Bakker. Teori Matematika tentang Ketepatan Program . Prentice Hall, 1980.
[Egl75] H Egli. Model matematika untuk perhitungan nondeterministik. Laporan teknis, ETH Zürich, 1975.
[Kön32] D König. Theorie der endlichen dan tak berujung Graphen. Laporan teknis, Leipzig, 1932.
[Plo76] GD Plotkin. Konstruksi domain kekuasaan. Jurnal SIAM tentang Perhitungan , 5 (3): 452-487, 1976.
Penafian: ini diambil hampir kata demi kata dari sebuah buku yang pernah saya tulis bersama:
WP de Roever dan K Engelhardt. Penyempitan Data: Metode Bukti yang Berorientasi Model dan Perbandingannya . Cambridge University Press, 1998.
sumber