Sto guardando Hoare Logic e ho problemi a capire il metodo per trovare il ciclo invariante.Hoare Logic Loop Invariant
Qualcuno può spiegare il metodo utilizzato per calcolare il ciclo invariante?
E cosa dovrebbe contenere un invariante di loop per essere uno "utile"?
Sono solo trattare con semplici esempi, trovando invarianti e dimostrando la correzione parziale e completo in esempi come:
{ i ≥ 0 } while i > 0 do i := i−1 { i = 0 }
Spiegazione molto informale per una cosa formale :). Gli invarianti non si mantengono all'inizio e alla fine, ma dovrebbero mantenere dopo ogni istruzione di un programma finché l'input soddisfa le precondizioni. La logica di Hoare si basa su schemi di programma semplici, la langauge di implementazione concreta non ha molta importanza. –
Heh, grazie per il commento :) Nella mia educazione il termine "invariante" è stato gettato in giro molto, senza una spiegazione formale di quello che era - apparentemente ho raccolto alcune idee sbagliate. –
Penso che quando si tratta di Hoare Logic, l'invariante è una specie di gettato senza una buona spiegazione ... – nunopolonia