test/Tools/isac/ProgLang/scrtools.thy
author Walther Neuper <wneuper@ist.tugraz.at>
Thu, 22 Aug 2019 16:48:04 +0200
changeset 59585 0bb418c3855a
parent 59545 4035ec339062
permissions -rw-r--r--
lucin: rename Script --> Program
s1210629013@55377
     1
wneuper@59460
     2
theory scrtools
wneuper@59465
     3
imports Isac.Build_Thydata
s1210629013@55377
     4
begin
s1210629013@55377
     5
wneuper@59500
     6
subsection \<open> Compare with scrtools.sml: "--- test auto-generated script" \<close>
wneuper@59545
     7
wneuper@59545
     8
partial_function (tailrec) stepwise_test :: "real => real"
wneuper@59545
     9
  where
wneuper@59545
    10
"stepwise_test t_t =
wneuper@59545
    11
  (Try (Rewrite_Set ''discard_minus'' False) @@
wneuper@59545
    12
   Try (Rewrite_Set ''expand_poly'' False) @@      
wneuper@59545
    13
   Try (Repeat (Calculate ''TIMES'')) @@           
wneuper@59545
    14
   Try (Rewrite_Set ''order_mult_rls'' False) @@   
wneuper@59545
    15
   Try (Rewrite_Set ''simplify_power'' False) @@   
wneuper@59545
    16
   Try (Rewrite_Set ''calc_add_mult_pow'' False) @@
wneuper@59545
    17
   Try (Rewrite_Set ''reduce_012_mult'' False) @@  
wneuper@59545
    18
   Try (Rewrite_Set ''order_add_rls'' False) @@    
wneuper@59545
    19
   Try (Rewrite_Set ''collect_numerals'' False) @@ 
wneuper@59545
    20
   Try (Rewrite_Set ''reduce_012'' False) @@       
wneuper@59545
    21
   Try (Rewrite_Set ''discard_parentheses'' False))
wneuper@59545
    22
  t_t"
wneuper@59472
    23
setup \<open>KEStore_Elems.add_mets
wneuper@59410
    24
  [Specify.prep_met @{theory "Test"} "met_testinter" [] Celem.e_metID
wneuper@59410
    25
      (["Test","test_interSteps_1"],
s1210629013@55377
    26
        [("#Given" ,["Term t_t"]), ("#Find"  ,["normalform n_n"])],
wneuper@59417
    27
      {rew_ord' = "dummy_ord", rls' = tval_rls, calc = [], srls = Rule.e_rls, prls = Rule.e_rls,
wneuper@59417
    28
        crls=tval_rls, errpats = [], nrls = Rule.e_rls},
wneuper@59545
    29
      @{thm stepwise_test.simps}
wneuper@59585
    30
	    (*"Program Stepwise t_t   =                        \
wneuper@59488
    31
        \(Try (Rewrite_Set ''discard_minus'' False) @@     \
wneuper@59488
    32
        \ Try (Rewrite_Set ''expand_poly'' False) @@       \
wneuper@59488
    33
        \ Try (Repeat (Calculate ''TIMES'')) @@            \
wneuper@59488
    34
        \ Try (Rewrite_Set ''order_mult_rls'' False) @@    \
wneuper@59488
    35
        \ Try (Rewrite_Set ''simplify_power'' False) @@    \
wneuper@59488
    36
        \ Try (Rewrite_Set ''calc_add_mult_pow'' False) @@ \
wneuper@59488
    37
        \ Try (Rewrite_Set ''reduce_012_mult'' False) @@   \
wneuper@59488
    38
        \ Try (Rewrite_Set ''order_add_rls'' False) @@     \
wneuper@59488
    39
        \ Try (Rewrite_Set ''collect_numerals'' False) @@  \
wneuper@59488
    40
        \ Try (Rewrite_Set ''reduce_012'' False) @@        \
wneuper@59488
    41
        \ Try (Rewrite_Set ''discard_parentheses'' False)) \
wneuper@59545
    42
        \ t_t"*)
s1210629013@55377
    43
    (*presently this script cannot become equal in types to auto_script, because:
s1210629013@55377
    44
      this t_t must be either 'real' or 'bool'  #1#, 
s1210629013@55377
    45
      while the auto_script must be 'z and type-instantiated before usage*))]
wneuper@59472
    46
\<close>
wneuper@59500
    47
text \<open> see scrtools.sml "--- test auto-generated script" \<close>
wneuper@59500
    48
wneuper@59500
    49
subsection \<open> Handle Var from parsing by partial_function \<close>
wneuper@59500
    50
partial_function (tailrec) xxx ::
wneuper@59500
    51
  "bool \<Rightarrow> bool list"
wneuper@59500
    52
  where
wneuper@59500
    53
  "xxx e_e = (let e_e = (Rewrite_Set ''yyy'' False) e_e in [e_e])"
wneuper@59500
    54
text \<open> see scrtools.sml "--- Handle Var from parsing by partial_function" \<close>
wneuper@59500
    55
wneuper@59500
    56
subsection \<open> Compare program terms: from old parsing | from partial_function \<close>
wneuper@59500
    57
partial_function (tailrec) minisubpbl ::
wneuper@59500
    58
  "bool \<Rightarrow> real \<Rightarrow> bool list"
wneuper@59500
    59
where "minisubpbl e_e v_v =
wneuper@59500
    60
  (let e_e = ((Try (Rewrite_Set ''norm_equation'' False)) @@
wneuper@59500
    61
              (Try (Rewrite_Set ''Test_simplify'' False))) e_e;
wneuper@59500
    62
      (L_L::bool list) =
wneuper@59500
    63
             (SubProblem (''TestX'',
wneuper@59500
    64
                 [''LINEAR'', ''univariate'', ''equation'', ''test''],
wneuper@59500
    65
                 [''Test'', ''solve_linear''])
wneuper@59500
    66
               [BOOL e_e, REAL v_v])
wneuper@59500
    67
   in Check_elementwise L_L {(v_v::real). Assumptions})"
wneuper@59500
    68
wneuper@59500
    69
thm "minisubpbl.simps"
s1210629013@55377
    70
wneuper@59478
    71
ML \<open>
wneuper@59478
    72
\<close> ML \<open>
wneuper@59478
    73
\<close>
wneuper@59478
    74
s1210629013@55377
    75
end