source: src/LTL/ @ 3041

Last change on this file since 3041 was 2946, checked in by tranquil, 8 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. should be okay, but I have not had time to complete its compilation.

File size: 746 bytes
1include "LTL/".
2include "LTL/".
3include "LIN/".
4include "joint/".
5include "common/".
7(* this should come directly from linearise proof *)
8axiom LTLToLIN_ok :
9∀stacksizes : ident → option ℕ. (* are hypotheses needed here? *)
10∀p_in : joint_program LTL.
11let p_out ≝ ltl_to_lin p_in in
12∃[1] R.
13  status_simulation
14    (joint_status LTL_semantics p_in stacksizes)
15    (joint_status LIN_semantics p_out stacksizes)
16    R ∧
17  ∀init_in.make_initial_state
18    (mk_prog_params LTL_semantics p_in stacksizes) = OK … init_in →
19  ∃init_out.
20    make_initial_state
21     (mk_prog_params LIN_semantics p_out stacksizes) =
22      OK ? init_out ∧
23   R init_in init_out.
Note: See TracBrowser for help on using the repository browser.