src/HOLCF/Tools/Domain/domain_theorems.ML
changeset 37109 e67760c1b851
parent 37082 a1fb7947dc2b
child 37145 01aa36932739
equal deleted inserted replaced
37108:00f13d3ad474 37109:e67760c1b851
   143 val {sel_rews, ...} = result;
   143 val {sel_rews, ...} = result;
   144 val when_rews = #cases result;
   144 val when_rews = #cases result;
   145 val when_strict = hd when_rews;
   145 val when_strict = hd when_rews;
   146 val dis_rews = #dis_rews result;
   146 val dis_rews = #dis_rews result;
   147 val mat_rews = #match_rews result;
   147 val mat_rews = #match_rews result;
   148 val pat_rews = #pat_rews result;
       
   149 
   148 
   150 (* ----- theorems concerning the isomorphism -------------------------------- *)
   149 (* ----- theorems concerning the isomorphism -------------------------------- *)
   151 
   150 
   152 val pg = pg' thy;
   151 val pg = pg' thy;
   153 
   152 
   209      ((qualified "when_rews" , when_rews   ), [simp]),
   208      ((qualified "when_rews" , when_rews   ), [simp]),
   210      ((qualified "compacts"  , compacts    ), [simp]),
   209      ((qualified "compacts"  , compacts    ), [simp]),
   211      ((qualified "con_rews"  , con_rews    ), [simp]),
   210      ((qualified "con_rews"  , con_rews    ), [simp]),
   212      ((qualified "sel_rews"  , sel_rews    ), [simp]),
   211      ((qualified "sel_rews"  , sel_rews    ), [simp]),
   213      ((qualified "dis_rews"  , dis_rews    ), [simp]),
   212      ((qualified "dis_rews"  , dis_rews    ), [simp]),
   214      ((qualified "pat_rews"  , pat_rews    ), [simp]),
       
   215      ((qualified "dist_les"  , dist_les    ), [simp]),
   213      ((qualified "dist_les"  , dist_les    ), [simp]),
   216      ((qualified "dist_eqs"  , dist_eqs    ), [simp]),
   214      ((qualified "dist_eqs"  , dist_eqs    ), [simp]),
   217      ((qualified "inverts"   , inverts     ), [simp]),
   215      ((qualified "inverts"   , inverts     ), [simp]),
   218      ((qualified "injects"   , injects     ), [simp]),
   216      ((qualified "injects"   , injects     ), [simp]),
   219      ((qualified "take_rews" , take_rews   ), [simp]),
   217      ((qualified "take_rews" , take_rews   ), [simp]),
   220      ((qualified "match_rews", mat_rews    ), [simp])]
   218      ((qualified "match_rews", mat_rews    ), [simp])]
   221   |> snd
   219   |> snd
   222   |> pair (iso_rews @ when_rews @ con_rews @ sel_rews @ dis_rews @
   220   |> pair (iso_rews @ when_rews @ con_rews @ sel_rews @ dis_rews @
   223       pat_rews @ dist_les @ dist_eqs)
   221       dist_les @ dist_eqs)
   224 end; (* let *)
   222 end; (* let *)
   225 
   223 
   226 (******************************************************************************)
   224 (******************************************************************************)
   227 (****************************** induction rules *******************************)
   225 (****************************** induction rules *******************************)
   228 (******************************************************************************)
   226 (******************************************************************************)