src/HOL/Tools/BNF/bnf_gfp_rec_sugar.ML
changeset 57550 934a54d04a9a
parent 57527 1b07ca054327
child 57551 c07bac41c7ab
equal deleted inserted replaced
57549:7a2fbd8c1d98 57550:934a54d04a9a
   763           member (op =) (filter (null o binder_types o fastype_of) ctrs) (the rhs_opt) then
   763           member (op =) (filter (null o binder_types o fastype_of) ctrs) (the rhs_opt) then
   764       dissect_coeqn_disc lthy fun_names sequentials basic_ctr_specss eqn_pos NONE NONE prems concl
   764       dissect_coeqn_disc lthy fun_names sequentials basic_ctr_specss eqn_pos NONE NONE prems concl
   765         matchedsss
   765         matchedsss
   766       |>> single
   766       |>> single
   767     else if member (op =) sels head then
   767     else if member (op =) sels head then
   768       ([dissect_coeqn_sel lthy fun_names basic_ctr_specss eqn_pos NONE NONE eqn0 of_spec_opt concl],
   768       (null prems orelse
   769        matchedsss)
   769        primcorec_error_eqn "premise(s) in selector formula" eqn;
       
   770        ([dissect_coeqn_sel lthy fun_names basic_ctr_specss eqn_pos NONE NONE eqn0 of_spec_opt
       
   771            concl], matchedsss))
   770     else if is_some rhs_opt andalso
   772     else if is_some rhs_opt andalso
   771         is_Free head andalso member (op =) fun_names (fst (dest_Free head)) then
   773         is_Free head andalso member (op =) fun_names (fst (dest_Free head)) then
   772       if member (op =) ctrs (head_of (unfold_lets_splits (the rhs_opt))) then
   774       if member (op =) ctrs (head_of (unfold_lets_splits (the rhs_opt))) then
   773         dissect_coeqn_ctr lthy fun_names sequentials basic_ctr_specss eqn_pos eqn0
   775         dissect_coeqn_ctr lthy fun_names sequentials basic_ctr_specss eqn_pos eqn0
   774           (if null prems then
   776           (if null prems then