@@ -20,22 +20,22 @@ open pred_specTheory;
2020open policy_specTheory;
2121open tables_specTheory;
2222open bdd_isomorphTheory;
23- open bdd_end_to_endTheory;
24-
25-
23+ open bdd_end_to_endTheory;
2624
2725open policy_arith_to_varTheory;
2826
27+ open table_arith_to_intervalTheory;
28+
29+
30+
2931
3032
3133val _ = load " bdd_utils" ;
3234
3335val _ = new_theory " bdd_test_cases" ;
3436
35- (* TODO: update the sml definition that takes a var bdd and generates var table, now the var_table has new syntax. Var x | True | False | Not atom -->
36- Var x | Not x | Not True | Not False | True | False
37-
3837
38+
3939(* a few types abbreviations *)
4040val _ = type_abbrev(" BDD_tbl_type" , “:(( (string# num list) var_table_list, (string# num list) action_expr) BDD)”);
4141
@@ -79,7 +79,7 @@ val eval_policy1_full_opt_rhs = optionSyntax.dest_some (rhs (concl eval_policy1_
7979
8080(* automatically generate a table*)
8181val test_groupings1 = rhs(concl(EVAL “[(" a" ,[" x" ;" y" ]);(" b" ,[" z" ])]”));
82- val test_action_table1_auto =BDDUtils.bdd_to_tables_iterative eval_policy1_full_opt_rhs test_groupings1;
82+ val test_action_table1_auto = BDDUtils.bdd_to_tables_iterative eval_policy1_full_opt_rhs test_groupings1;
8383
8484(* now create a BDD for the table*)
8585val eval_table1_full_opt_auto = EVAL “mk_BDDPred_opt table_structure (0 ,[],[(0 , non_termn (NONE , ^test_action_table1_auto))]) [] [" x" ;" y" ;" z" ] 1 ”;
@@ -94,6 +94,19 @@ val policy1_thm_init = computeLib.RESTR_EVAL_CONV [“sem_tables”,“sem_polic
9494val policy1_thm = SIMP_RULE bool_ss [correct_var_policy_var_tables_exec_thm1] policy1_thm_init;
9595
9696
97+ (* from var tables to final single interval table*)
98+
99+
100+
101+
102+
103+
104+
105+
106+
107+
108+
109+
97110(*
98111(* policy 1: var TABLE representation *)
99112
@@ -301,6 +314,12 @@ val arith_policy3_var_policy3_thm = REWRITE_RULE[all_distinct_conj, arith_policy
301314
302315*)
303316
304- *)
317+
305318val _ = export_theory ();
306319
320+
321+
322+
323+
324+
325+
0 commit comments