Section TRANSFORMATION.
Variable p: program.
Variable used: IS.t.
Let add_def (m: prog_map) idg := PTree.set (fst idg) (snd idg) m.
Remark filter_globdefs_accu:
forall defs accu1 accu2 u,
filter_globdefs u (accu1 ++ accu2) defs = filter_globdefs u accu1 defs ++ accu2.
Remark filter_globdefs_nil:
forall u accu defs,
filter_globdefs u accu defs = filter_globdefs u nil defs ++ accu.
End TRANSFORMATION.

Theorem transf_program_match:
forall p tp, transform_program p = OK tp -> match_prog p tp.