source: src/RTL/RTL_overflow_to_unique.ma @ 2984

Last change on this file since 2984 was 2946, checked in by tranquil, 7 years ago

main novelties:

  • there is an in-built stack_usage nat in joint states, at the base of the new division of RTL's semantics (with separate stacks, with separate stacks but with an artificial overflow error, with a unique stack)
  • a premain is added semantically to the global env, so initial cost label and main call and return are observed
  • proper initialization is now in LINToASM (to be sure, endianess should be checked ;-)

The update breaks proofs of back end atm. compiler.ma should be okay, but I have not had time to complete its compilation.

File size: 658 bytes
Line 
1include "RTL/RTL_semantics.ma".
2include "joint/Traces.ma".
3include "common/StatusSimulation.ma".
4
5axiom RTL_separate_to_unique_ok :
6∀stacksizes : ident → option ℕ. (* are hypotheses needed here? *)
7∀p_in : rtl_program.
8∃[1] R.
9  status_simulation
10    (joint_status RTL_semantics_separate_overflow p_in stacksizes)
11    (joint_status RTL_semantics_unique p_in stacksizes)
12    R ∧
13  ∀init_in.make_initial_state
14    (mk_prog_params RTL_semantics_separate_overflow p_in stacksizes) = OK … init_in →
15  ∃init_out.
16    make_initial_state
17     (mk_prog_params RTL_semantics_unique p_in stacksizes) =
18      OK ? init_out ∧
19   R init_in init_out.
Note: See TracBrowser for help on using the repository browser.