1 | include "Clight/test/sum.c.ma". |
---|
2 | |
---|
3 | example exec: finishes_with (repr I32 74) ? (exec_up_to clight_fullexec myprog 1000 [ ]). |
---|
4 | normalize (* you can examine the result here *) |
---|
5 | @refl |
---|
6 | qed. |
---|
7 | |
---|
8 | include "Clight/SimplifyCasts.ma". |
---|
9 | |
---|
10 | example es: finishes_with (repr I32 74) ? (exec_up_to clight_fullexec (simplify_program myprog) 1000 [ ]). |
---|
11 | normalize (* you can examine the result here *) |
---|
12 | @refl |
---|
13 | qed. |
---|
14 | |
---|
15 | include "Clight/toCminor.ma". |
---|
16 | include "Cminor/semantics.ma". |
---|
17 | |
---|
18 | example e1: finishes_with (repr I32 74) ? |
---|
19 | (bind ? (snapshot state) (clight_to_cminor (simplify_program myprog)) |
---|
20 | (λp. exec_up_to Cminor_fullexec p 1000 [ ])). |
---|
21 | normalize |
---|
22 | @refl |
---|
23 | qed. |
---|
24 | |
---|
25 | include "Cminor/toRTLabs.ma". |
---|
26 | include "RTLabs/semantics.ma". |
---|
27 | |
---|
28 | example e2: finishes_with (repr I32 74) ? ( |
---|
29 | bind ? (snapshot state) (clight_to_cminor (simplify_program myprog)) |
---|
30 | (λp1. bind ? (snapshot state) (cminor_to_rtlabs p1) |
---|
31 | (λp2. exec_up_to RTLabs_fullexec p2 1000 [ ]))). |
---|
32 | normalize |
---|
33 | @refl |
---|
34 | qed. |
---|
35 | (* |
---|
36 | include "RTLabs/RTLabsToRTL.ma". |
---|
37 | include alias "basics/lists/list.ma". |
---|
38 | |
---|
39 | definition take_out: ∀A. res A → A ≝ |
---|
40 | λA,a. match a with [ OK x ⇒ x | Error _ ⇒ ?]. |
---|
41 | cases daemon |
---|
42 | qed. |
---|
43 | |
---|
44 | example CSC: True. |
---|
45 | letin xxx ≝ |
---|
46 | (let p ≝ take_out … (clight_to_cminor myprog) in |
---|
47 | let p ≝ take_out … (cminor_to_rtlabs p) in |
---|
48 | (* (map … (λx. match (\snd x) with [External _ ⇒ ? | Internal f ⇒ f_graph … f]) (prog_funct … p)) *) |
---|
49 | let p ≝ rtlabs_to_rtl p in |
---|
50 | (map … (λx. match (\snd x) with [External _ ⇒ ? | Internal f ⇒ joint_if_code … f]) (prog_funct … p)) |
---|
51 | ) |
---|
52 | [2: cases daemon] |
---|
53 | normalize in xxx; |
---|
54 | |
---|
55 | |
---|
56 | [2: |
---|
57 | OK (list (codeT (prog_var_names … p) (rtl_params (prog_var_names … p)))) (list_map … (λx. match (\snd x) return λ_.codeT (prog_var_names … p) (rtl_params ?) with [External _ ⇒ ? | Internal f ⇒ ?(*joint_if_code ? (rtl_params ?) f*)]) (prog_funct … p))) |
---|
58 | (* OK ? (map … (λx. match (\snd x) with [External _ ⇒ ? | Internal f ⇒ f_graph … f]) (prog_funct … p))) |
---|
59 | *) |
---|
60 | [2: check (joint_if_code (prog_var_names … p) ? f) |3: cases daemon ] |
---|
61 | normalize in xxx |
---|
62 | *) |
---|