src/ZF/add_ind_def.ML
changeset 567 01c043f61077
parent 516 1957113f0d7d
child 591 5a6b0ed377cb
equal deleted inserted replaced
566:959cb0e329f7 567:01c043f61077
   167 	   (case parts of 
   167 	   (case parts of 
   168 	       [_] => [] 			(*no mutual recursion*)
   168 	       [_] => [] 			(*no mutual recursion*)
   169 	     | _ => rec_tms ~~		(*define the sets as Parts*)
   169 	     | _ => rec_tms ~~		(*define the sets as Parts*)
   170 		    map (subst_atomic [(Free(X',iT),big_rec_tm)]) parts));
   170 		    map (subst_atomic [(Free(X',iT),big_rec_tm)]) parts));
   171 
   171 
   172   in  thy |> add_defns_i axpairs  end
   172   in  thy |> add_defs_i axpairs  end
   173 
   173 
   174 
   174 
   175 (*external, string-based version; needed?*)
   175 (*external, string-based version; needed?*)
   176 fun add_fp_def (rec_doms, sintrs) thy = 
   176 fun add_fp_def (rec_doms, sintrs) thy = 
   177   let val sign = sign_of thy;
   177   let val sign = sign_of thy;
   257 	(big_case_name, big_case_typ, NoSyn) :: map #1 (flat con_ty_lists);
   257 	(big_case_name, big_case_typ, NoSyn) :: map #1 (flat con_ty_lists);
   258 
   258 
   259     val axpairs =
   259     val axpairs =
   260 	big_case_def :: flat (map mk_con_defs ((1 upto npart) ~~ con_ty_lists))
   260 	big_case_def :: flat (map mk_con_defs ((1 upto npart) ~~ con_ty_lists))
   261 
   261 
   262     in  thy |> add_consts_i const_decs |> add_defns_i axpairs  end;
   262     in  thy |> add_consts_i const_decs |> add_defs_i axpairs  end;
   263 end;
   263 end;
   264 
       
   265 
       
   266 
       
   267