Niezmiennik
Własność, która jest zawsze prawdziwa w określonym miejscu kodu. Niezmiennik pętli zachodzi w każdej iteracji. Niezmiennik klasy zachodzi po każdej metodzie publicznej. Niezmiennik struktury danych zachodzi w każdym obserwowalnym stanie.
Kluczowy w weryfikacji formalnej i dowodach poprawności (logika Hoare'a). Programowanie kontraktowe (Eiffel, Bertrand Meyer) opiera się na warunkach wstępnych, końcowych i niezmiennikach. W praktyce: instrukcje assert jako dokumentacja i kontrola w czasie działania. Biblioteka JS invariant() była popularna w erze Reacta jako asercje tylko na czas developmentu. Wzorzec newtype w Ruście i TypeScripcie (typy z etykietą) pozwala wymusić niezmienniki kontrolą typów.