Ragionamento su loop di terminazione non deterministicamente


10

Ecco una domanda "traccia B" se ce n'è mai stata una. Riepilogo: la prima cosa a cui penso quando provo a dare una semantica a programmi non deterministici si traduce in una semantica in cui non posso provare cose su loop che terminano solo in modo non deterministico. Sicuramente qualcuno ha capito cosa fare in questa situazione, o almeno ha sottolineato che è difficile, ma non so come cercarlo (da qui il tag "richiesta di riferimento").

sfondo

Voglio modellare un linguaggio while con non determinismo. Penso che questo sia il modo ovvio (o almeno l'ingenuo) di modellare un linguaggio del genere con un powerdomain di Smyth, ma correggimi se sbaglio. Modelleremo il significato di un comando in questo linguaggio come una funzione il cui dominio è l'insieme S degli stati e il cui codice è l'insieme P(S)={}P(S) , dove è un elemento minimo che rappresenta la non terminazione e P(S) è il gruppo di potere degli stati.

Interpretiamo i comandi come mappe dagli stati σ all'evento di non terminazione o ad insiemi di stati che rappresentano possibili esiti. è una scelta non deterministica.P Q{σ1,σ2,}PQ

  • skipσ={σ}
  • x:=Eσ={σ[(Eσ)/x]}
  • abortσ=
  • if E then P else Qσ=Pσ se Eσ=true , altrimenti Qσ
  • PQσ= se Pσ= o Qσ= , altrimenti PσQσ
  • P σ = Q T si = T si P σ T si P σQ T siP;Qσ= se o per alcuni , altrimentiPσ=Qτ=τPστPσQτ

Esiste un ordine parziale completo diretto , in cui per qualsiasi e se sia che sono set corretti e , e possiamo estenderlo alle funzioni da a puntualmente: se per ogni e è la funzione che mappa ogni stato a .S S P ( S ) S 1S 2 S 1 S 2 S 1S 2 f S P ( S ) f 1f 2 f 1 ( σ ) f 2 ( σ ) σ f SSP(S)S1S2S1S2S1S2fSP(S)f1f2f1(σ)f2(σ)σf

Il significato di un ciclo è è il limite inferiore minimo della catena , dove se , altrimenti se or per alcuni , altrimenti . (Questa definizione presuppone che la ho appena definito sia Scott continua, ma penso che sia sicuro lasciarlo da parte.)f f ( f ) f ( f ( f ) ) ... f ( g ) ( σ ) = { σ } E ( σ ) = f un l s eP σ = while E do Pσff(f)f(f(f))f(g)(σ)={σ}E(σ)=falsePσ=g(τ)=τPστPσg(τ)f

Domanda

Considera questo programma:

x:=0;
b:=true;
while b do
x:=x+2;
b:=falseb:=true

Intuitivamente, questo è un ciclo che può restituire qualsiasi numero pari positivo o non terminare e che corrisponde a ciò che possiamo provare su questo ciclo usando il presupposto liberale più debole (è possibile mostrare che è un ciclo invariante). Tuttavia, poiché il ciclo ha la capacità di non terminare (possiamo raffinare la scelta non deterministica dal programma che prende sempre il ramo di destra), il significato di questo programma dato qualsiasi stato iniziale è . (Meno informalmente: la funzione che mappa qualsiasi stato in cui è falso a se stesso e qualsiasi stato in cui è fedele a è un punto fisso di utilizzato per definire il ciclo.)b b fn.x=2nbbf

Ciò significa che la semantica ingenua che ho proposto non corrisponde al modo in cui mi aspetto di poter ragionare sui programmi. Incolpo la mia semantica, ma non so come risolverli.


4
Penso che utilizzando come il codominio del significato di un programma, si è effettivamente rinunciato a ragionare nulla di un programma che può divergere. Un pensiero ingenuo è usare , ma non so se questo introdurrà un altro problema. {}P(S)P(S{})
Tsuyoshi Ito,

Sì, hai assolutamente ragione a guardare il set è già evidente che la speranza è persa anche prima di arrivare all'esempio. Il tuo suggerimento è arrivato anche a me, ma penso che in questo esempio finirai con lo stesso problema se il potenziale non-termine è modellato da non , e se abbiamo scelto quest'ultimo che interferirebbe con la nostra capacità di dare un significato ad un loop come un punto minimo fisso nel solito modo. S { } { }{}P(S)S{}{}
Rob Simmons,

Hai visto Dynamic Logic? La semantica è data in termini di relazioni tra stati e stati, e puoi usare la logica per ragionare sulla correttezza parziale e totale, vale a dire le proprietà dei calcoli che terminano e che tutti i calcoli terminano con una data proprietà.
Dave Clarke,

Non ho pensato alla logica dinamica in questa impostazione, ma vedo come potrebbe essere rilevante: vedrò cosa pensano Platzer e i suoi studenti quando tornerò a Pittsburgh.
Rob Simmons,

Risposte:


10

In [dB80] è stato dimostrato che l'analisi di Hitchcock e Park delle proprietà di terminazione della ricorsione corrisponde a un'analisi semantica basata sulla cosiddetta interpretazione Egli-Milner delle relazioni [Egl75, Plo76], che esprime un non determinismo irregolare . Questa nozione cattura che un'unione non deterministica di relazioni è corretta se genera almeno un calcolo che porta ad un risultato desiderato (anche in presenza di un calcolo non terminale). Questo sembra corrispondere a quello che stai cercando di fare.

Successivamente caratterizza il significato di un'istruzione come funzione mappa ogni stato iniziale su un insieme di stati non vuoto, possibilmente contenente , in modo tale che sia rigoroso nel senso che . La scelta non deterministica tra le affermazioni e è descritta dalla funzione che mappa ogni stato iniziale all'unione dei singoli risultati . Pertanto, ogni volta che of S σ f S f S ( ) = { } S 1 S 2 σ f S 1 ( σ ) f S 2 ( σ ) S 1 S 2SfSσfSfS()={}S1S2σfS1(σ)fS2(σ)S1S2ha la possibilità non deterministica di produrre un risultato indesiderabile, quindi anche la loro scelta non deterministica. Come l'insieme risultante di stati finali si ottiene in questa analisi il cosiddetto gruppo di stati Egli-Milner:

}PE--M(S)={ sS | s è finito e non vuoto, o contiene}

Perché infiniti sottoinsiemi di non sono considerati possibili insiemi di stati finali in questo modello? Partendo dal presupposto che tutti i mattoni elementari dei termini relazionali producono solo insiemi finiti e non vuoti di possibili stati finali, un insieme infinito di possibili stati finali può essere generato solo quando è possibile un calcolo infinito. Questo può essere visto come segue. Strutturare l'insieme di tutti i possibili calcoli a partire da un dato stato come un albero con root e gli stati come nodi. L'insieme delle foglie è quindi esattamente l'insieme dei possibili stati finali raggiungibili da , ad eccezione diσ 0 σ 0 σ 0Sσ0σ0σ0, che potrebbe mancare tra le foglie ma è rappresentato nell'insieme degli stati finali dal fatto che esiste un percorso infinito nell'albero. Partendo dal presupposto sopra, e poiché è disponibile solo una scelta non deterministica finita, questo albero si sta ramificando finitamente. Pertanto, esiste solo un numero finito di foglie a una data profondità finita. Di conseguenza un numero infinito di possibili stati finali può essere generato solo in presenza di un calcolo infinito (un'applicazione del lemma di König [Kön32]).

E - M s , t P E - M ( S )(PE--M(S),E--M) è un poset per definito da: per ,E--Ms,tPE--M(S)

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

Qui, può essere visto come un segnaposto attraverso il quale -grande serie possono essere generate inserendo più stati al posto di . Pertanto, è il minimo elemento di . Inoltre, il poset possiede lub's per -chains. Allo stesso modo, le rigide funzioni da a sono parzialmente ordinate dall'estensione puntuale di . Inoltre, la funzione meno importante è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λσ.{}Esistono anche e lub's of -chains di tali funzioni.ω

[dB80] JW de Bakker. Teoria matematica della correttezza del programma . Prentice Hall, 1980.

[Egl75] H Egli. Un modello matematico per calcoli non deterministici. Rapporto tecnico, ETH Zurigo, 1975.

[Kön32] D König. Theorie der endlichen und unendlichen Graphen. Rapporto tecnico, Lipsia, 1932.

[Plo76] GD Plotkin. Una costruzione powerdomain. SIAM Journal on Computation , 5 (3): 452-487, 1976.

Disclaimer: questo è tratto quasi alla lettera da un libro che una volta ho scritto:

WP de Roever e K Engelhardt. Affinamento dei dati: metodi di prova orientati al modello e loro confronto . Cambridge University Press, 1998.


4
La frase "questo è preso quasi verbalmente da un libro che una volta ho scritto" dovrebbe probabilmente essere preceduta da "Extra Awesomeness:" non "Disclaimer:" :-D. Grazie, è molto utile
Rob Simmons,

Un modo di vedere il non determinismo (e il modo in cui voglio vederlo) è che si tratta di una forma di sotto specificazione - un programma con una scelta non deterministica è raffinato dal programma che prende sempre la prima scelta, prende sempre la seconda scelta, o (vedi il vasto lavoro di McIver e Morgan in questa particolare area) il programma che prende una scelta o l'altra con probabilità .5 . Quindi il ciclo che non termina in modo non deterministico viene perfezionato dal ciclo che non termina mai , e anche dal tuo giro di gettoniera che termina (con probabilità 1)
Rob Simmons
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.