Χρήση βεβαιώσεων

Προγραμματίζουμε με σιγουριά αν εκφράζουμε τους αλγορίθμους μας με βάση:

Παράδειγμα

Είσοδος:
  Α(1..Ν): πίνακας ακεραίων
  N : ακέραιος
Έξοδος:
  Β(1..Ν): πίνακας ακεραίων

Προϋποθέσεις:
  Ν >= 1
Μετασυνθήκες:
  Β(1..Ν) περιέχει τις τιμές του Α(1..Ν)

Μεταβλητές
  Ι : Ακέραιος

I := 1
Όσο Ι <= Ν
  Β(Ι) := Α(Ι)
  Αναλλοίωτη συνθήκη: Β(1..Ι) := Α(1..Ι)
  Συνθήκη σύγκλισης: Ν - Ι
  Ι := Ι + 1
Τέλος
Σε στρατηγικά σημεία του κώδικα μπορούμε να εκφράζουμε τις παραπάνω έννοιες με τη βοήθεια μιας βεβαίωσης (assertion). Παράδειγμα:
void
arraycopy(int a[], int b[], int n)
{
        assert(n >= 0);
        // ...
}