Section Temporary_to_see_inconsistency.
(*Initial states are inconsistent. Here is how *)
(* End of temporary exposition *)
Goal True.
idtac "Delete until here". auto. Qed.
End Temporary_to_see_inconsistency.

Theorem top2bottom_correct:
CSL_correct C_program ->
CompCert_compiler C_program = Some Asm_program ->
forall (src_m:Memory.mem) (src_cpm:Clight.state),
CSL_init_setup C_program src_m src_cpm ->
Clight.entry_point (Clight.globalenv C_program) src_m src_cpm (main_ptr C_program) nil ->
forall (limited_builtins:Asm_core.safe_genv x86_context.X86Context.the_ge),
asm_prog_well_formed Asm_program limited_builtins ->
forall (U:schedule), exists (tgt_m0 tgt_m: mem) (tgt_cpm:ThreadPool.t),
permissionless_init_machine
Asm_program limited_builtins
tgt_m0 tgt_cpm tgt_m (main_ptr C_program) nil /\
spinlock_safe U tgt_cpm tgt_m.