Definition main_sig : signature := mksignature nil (Some AST.Tint).

Lemma transform_compose: forall {F1 F2 F3 V:Type} (P: AST.program F1 V) (transf12: F1 -> F2) (transf23 : F2 -> F3), transform_program transf23 (transform_program transf12 P) = transform_program (fun f : F1 => transf23 (transf12 f)) P.