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

Lemma ccT_trans_CaseExtends: forall {F1 C1 V F2 C2 F3 C3} (Sem1 : CoopCoreSem (Genv.t F1 V) C1) (Sem2 : CoopCoreSem (Genv.t F2 V) C2) (Sem3 : CoopCoreSem (Genv.t F3 V) C3) ExternIdents epts12 epts23 I (P1 : AST.program F1 V) (P2 : AST.program F2 V) (P3 : AST.program F3 V) transf12 (HP12: P2=transform_program transf12 P1) transf23 (ePts12_ok : CompilerCorrectness.entryPts_ok P1 P2 ExternIdents epts12) (SimExt12 : Forward_simulation_ext.Forward_simulation_extends Sem1 Sem2 (Genv.globalenv P1) (Genv.globalenv P2) epts12) (SIM23 : CompilerCorrectness.cc_simT I ExternIdents epts23 F2 C2 V F3 C3 Sem2 Sem3 P2 P3 transf23) (i1: I F1 C1 V Sem1 P1), forall entrypoints13 : list (val * val * signature), entrypoints_compose epts12 epts23 entrypoints13 -> CompilerCorrectness.cc_simT I ExternIdents entrypoints13 F1 C1 V F3 C3 Sem1 Sem3 P1 P3 (fun f => transf23 (transf12 f)).