Die Nachbedingungen einer Funktion oder eines Programms geben an, welche Aussagen nach der Ausführung gelten müssen, falls zuvor die Vorbedingungen erfüllt waren. Die Nachbedingung ist Teil der formalen Spezifikation der Funktion (bzw. des Programms) und dient der Verifikation: Wenn die Vorbedingung gilt, so müssen nach Ausführung der Funktion alle Nachbedingungen erfüllt sein, sonst ist das Programm nicht korrekt.
Das Konzept von Vor- und Nachbedingungen wird vor allem in der formalen Semantik benutzt: es stellt die Basis der axiomatischen Semantik dar. Das Ziel ist es dabei, aus den Vor- und Nachbedingungen der einzelnen Teile des Programms logisch die gewünschte Nachbedingung für das gesamte Programm zu folgern.
Auch bei dem weniger formalen Testen von Software spielen Nachbedingungen eine wesentliche Rolle, da das Ergebnis von Testläufen leicht mit den Nachbedingungen verglichen werden kann. Das wird vor allem für den so genannten Unit-Test verwendet.