src/HOLCF/domain/theorems.ML
changeset 1834 c780a4f39454
parent 1829 5a3687398716
child 2033 639de962ded4
equal deleted inserted replaced
1833:59f5256d8dd2 1834:c780a4f39454
   185 				rtac cases 1,
   185 				rtac cases 1,
   186 				UNTIL_SOLVED(fast_tac HOL_cs 1)];
   186 				UNTIL_SOLVED(fast_tac HOL_cs 1)];
   187 end;
   187 end;
   188 
   188 
   189 local 
   189 local 
   190   fun bind_fun t = foldr mk_All ((if length cons = 1 then ["f"] 
   190   fun bind_fun t = foldr mk_All (when_funs cons,t);
   191 		  else mapn (fn n => K("f"^(string_of_int n))) 1 cons),t);
       
   192   fun bound_fun i _ = Bound (length cons - i);
   191   fun bound_fun i _ = Bound (length cons - i);
   193   val when_app  = foldl (op `) (%%(dname^"_when"), mapn bound_fun 1 cons);
   192   val when_app  = foldl (op `) (%%(dname^"_when"), mapn bound_fun 1 cons);
   194   val when_appl = pg [ax_when_def] (bind_fun(mk_trp(when_app`%x_name ===
   193   val when_appl = pg [ax_when_def] (bind_fun(mk_trp(when_app`%x_name ===
   195 	     when_body cons (fn (m,n)=> bound_fun (n-m) 0)`(dc_rep`%x_name))))[
   194 	     when_body cons (fn (m,n)=> bound_fun (n-m) 0)`(dc_rep`%x_name))))[
   196 				simp_tac HOLCF_ss 1];
   195 				simp_tac HOLCF_ss 1];