src/HOLCF/Tools/domain/domain_extender.ML
changeset 24707 dfeb98f84e93
parent 23152 9497234a2743
child 24712 64ed05609568
equal deleted inserted replaced
24706:c58547ff329b 24707:dfeb98f84e93
    98 (* ----- calls for building new thy and thms -------------------------------- *)
    98 (* ----- calls for building new thy and thms -------------------------------- *)
    99 
    99 
   100 fun gen_add_domain prep_typ (comp_dnam, eqs''') thy''' =
   100 fun gen_add_domain prep_typ (comp_dnam, eqs''') thy''' =
   101   let
   101   let
   102     val dtnvs = map ((fn (dname,vs) => 
   102     val dtnvs = map ((fn (dname,vs) => 
   103 			 (Sign.full_name thy''' dname, map (Sign.read_typ thy''') vs))
   103 			 (Sign.full_name thy''' dname, map (Syntax.read_typ_global thy''') vs))
   104                    o fst) eqs''';
   104                    o fst) eqs''';
   105     val cons''' = map snd eqs''';
   105     val cons''' = map snd eqs''';
   106     fun thy_type  (dname,tvars)  = (Sign.base_name dname, length tvars, NoSyn);
   106     fun thy_type  (dname,tvars)  = (Sign.base_name dname, length tvars, NoSyn);
   107     fun thy_arity (dname,tvars)  = (dname, map (snd o dest_TFree) tvars, pcpoS);
   107     fun thy_arity (dname,tvars)  = (dname, map (snd o dest_TFree) tvars, pcpoS);
   108     val thy'' = thy''' |> Theory.add_types     (map thy_type  dtnvs)
   108     val thy'' = thy''' |> Theory.add_types     (map thy_type  dtnvs)
   137     |> (snd o (PureThy.add_thmss [(("rews", List.concat rewss @ take_rews), [])]))
   137     |> (snd o (PureThy.add_thmss [(("rews", List.concat rewss @ take_rews), [])]))
   138     |> Theory.parent_path
   138     |> Theory.parent_path
   139   end;
   139   end;
   140 
   140 
   141 val add_domain_i = gen_add_domain Sign.certify_typ;
   141 val add_domain_i = gen_add_domain Sign.certify_typ;
   142 val add_domain = gen_add_domain Sign.read_typ;
   142 val add_domain = gen_add_domain Syntax.read_typ_global;
   143 
   143 
   144 
   144 
   145 (** outer syntax **)
   145 (** outer syntax **)
   146 
   146 
   147 local structure P = OuterParse and K = OuterKeyword in
   147 local structure P = OuterParse and K = OuterKeyword in