equal
deleted
inserted
replaced
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]; |