Describir: Proving safety with trace automata and bounded model checking