Odstraň první hodnotu z množiny Si a přiřaď tuto hodnotu proměnné i, nechť X je nový stav.
Je-li X cílovým, tj. legálním stavem, skonči proceduru úspěchem (vrať X), jinak pokračuj.
Odstraň z množin Sj, (j = i + 1, …, n) všechny hodnoty, které jsou v konfliktu s dosud přiřazenými hodnotami.
Jestliže je nějaká množina Sj (j = i + 1, …, n) prázdná, obnov původní stav množin Sj (tj. stav před bodem 3) a jdi na bod 7. Jinak pokračuj.
Volej proceduru Forward_Checking pro proměnnou k = i + 1.
Skončí-li procedura Forward_Checking pro proměnnou k úspěchem, skonči také úspěchem (vrať vrácený stav). Jinak pokračuj.
Není-li množina Si prázdná, vrať se na bod 1. Jinak skonči neúspěchem.