Invariant smyčky - v programování - logický výraz , který je pravdivý po každém průchodu těla smyčky (po provedení fixního operátoru ) a před začátkem smyčky, v závislosti na proměnných, které se mění v těle smyčky. [1] Invarianty se používají v teorii verifikace programu k prokázání správnosti výsledku získaného cyklickým algoritmem.
Invariant smyčky je matematický výraz (obvykle rovnost), který nevyhnutelně zahrnuje alespoň některé proměnné, jejichž hodnoty se mění od jedné iterace smyčky k další. Invariant je konstruován tak, aby byl pravdivý bezprostředně před začátkem provádění cyklu (před vstupem do první iterace) a po každé z jeho iterací. Pokud navíc invariant obsahuje proměnné definované pouze uvnitř cyklu (například počítadlo cyklů forv Pascalu nebo Ada ), pak se pro vstup do cyklu berou v úvahu s hodnotami, které obdrží v době inicializace.
Postup pro prokázání provozuschopnosti cyklu pomocí invariantu je následující:
Invarianty se také používají při návrhu a optimalizaci cyklických algoritmů . Například, aby bylo zajištěno, že optimalizovaná smyčka zůstane správná, stačí prokázat, že invariant smyčky není narušen a podmínka ukončení smyčky je dosažitelná.