Section cc_simT_trans.

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)).