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

Lemma coop_sim_cc_sim: forall {F1 C1 V1 F2 C2 V2:Type} (Sem1 : CoopCoreSem (Genv.t F1 V1) C1) (Sem2 : CoopCoreSem(Genv.t F2 V2) C2) (P1 : AST.program F1 V1) (P2 : AST.program F2 V2) (I: forall F C V (Sem : CoopCoreSem (Genv.t F V) C) (P : AST.program F V), Prop) epts ExternIdents (InitMem: forall m1 : mem, Genv.init_mem P1 = Some m1 -> Genv.init_mem P2 = Some m1) (Epts: CompilerCorrectness.entryPts_ok P1 P2 ExternIdents epts) (Main: prog_main P1 = prog_main P2) (GENV: CompilerCorrectness.GenvHyp P1 P2) (HP1: I F1 C1 V1 Sem1 P1) (HP2: I F2 C2 V2 Sem2 P2) (Externs: CompilerCorrectness.externvars_ok P1 ExternIdents) m (IM: Genv.init_mem P1 = Some m), Forward_simulation.coop_sim Sem1 Sem2 (Genv.globalenv P1) (Genv.globalenv P2) epts -> CompilerCorrectness.cc_sim I ExternIdents epts F1 C1 V1 F2 C2 V2 Sem1 Sem2 P1 P2.