src/HOLCF/Tools/Domain/domain_theorems.ML
changeset 35514 a2cfa413eaab
parent 35512 d1ef88d7de5a
child 35521 47eec4da124a
equal deleted inserted replaced
35513:89eddccbb93d 35514:a2cfa413eaab
   104     (dom_eqn : typ * (binding * (bool * binding option * typ) list * mixfix) list)
   104     (dom_eqn : typ * (binding * (bool * binding option * typ) list * mixfix) list)
   105     (thy : theory) =
   105     (thy : theory) =
   106 let
   106 let
   107 
   107 
   108 val _ = message ("Proving isomorphism properties of domain "^dname^" ...");
   108 val _ = message ("Proving isomorphism properties of domain "^dname^" ...");
   109 val map_tab = Domain_Isomorphism.get_map_tab thy;
   109 val map_tab = Domain_Take_Proofs.get_map_tab thy;
   110 
   110 
   111 
   111 
   112 (* ----- getting the axioms and definitions --------------------------------- *)
   112 (* ----- getting the axioms and definitions --------------------------------- *)
   113 
   113 
   114 local
   114 local
   137 
   137 
   138 val rep_const = Const(dname^"_rep", lhsT ->> rhsT);
   138 val rep_const = Const(dname^"_rep", lhsT ->> rhsT);
   139 
   139 
   140 val abs_const = Const(dname^"_abs", rhsT ->> lhsT);
   140 val abs_const = Const(dname^"_abs", rhsT ->> lhsT);
   141 
   141 
   142 val iso_info : Domain_Isomorphism.iso_info =
   142 val iso_info : Domain_Take_Proofs.iso_info =
   143   {
   143   {
   144     absT = lhsT,
   144     absT = lhsT,
   145     repT = rhsT,
   145     repT = rhsT,
   146     abs_const = abs_const,
   146     abs_const = abs_const,
   147     rep_const = rep_const,
   147     rep_const = rep_const,
   227         pat_rews @ dist_les @ dist_eqs)
   227         pat_rews @ dist_les @ dist_eqs)
   228 end; (* let *)
   228 end; (* let *)
   229 
   229 
   230 fun comp_theorems (comp_dnam, eqs: eq list) thy =
   230 fun comp_theorems (comp_dnam, eqs: eq list) thy =
   231 let
   231 let
   232 val map_tab = Domain_Isomorphism.get_map_tab thy;
   232 val map_tab = Domain_Take_Proofs.get_map_tab thy;
   233 
   233 
   234 val dnames = map (fst o fst) eqs;
   234 val dnames = map (fst o fst) eqs;
   235 val conss  = map  snd        eqs;
   235 val conss  = map  snd        eqs;
   236 val comp_dname = Sign.full_bname thy comp_dnam;
   236 val comp_dname = Sign.full_bname thy comp_dnam;
   237 
   237