variable substitue

continue=1;
while(continue=1)
do
  continue=0;
  for all constraints c in C
  do
    if c is funtional && (x,y)=variable of c
        if appears_number_inallconstraints(x)>appears_number_inallconstraints(y)
           to_eliminate=y; //y+2x+1=5; x=1+3, we will use x to subtituite y
           subtitute=x;
        else
            to_eliminate=x;       
            subtitute=y;
        endif
        if eliminate(to_eliminate,substitute, c) returns True
            continue=1;
        endif
    endif   
   done
done