SMT Techniques and their Applications : from Alt-Ergo to Cubicle