src/HOLCF/Fix.ML
changeset 1779 1155c06fa956
parent 1681 d9aaae4ff6c3
child 1780 e6656a445a33
equal deleted inserted replaced
1778:6c942cf3bf68 1779:1155c06fa956
   585         (etac spec 1),
   585         (etac spec 1),
   586         (Asm_simp_tac 1)
   586         (Asm_simp_tac 1)
   587         ]);
   587         ]);
   588 
   588 
   589 
   589 
   590 val adm_flat = flat_imp_chain_finite RS adm_chain_finite;
   590 bind_thm ("adm_flat", flat_imp_chain_finite RS adm_chain_finite);
   591 (* is_flat(?x::?'a) ==> adm(?P::?'a => bool) *)
   591 (* is_flat(?x::?'a) ==> adm(?P::?'a => bool) *)
   592 
   592 
   593 qed_goalw "flat_void" Fix.thy [is_flat_def] "is_flat(UU::void)"
   593 qed_goalw "flat_void" Fix.thy [is_flat_def] "is_flat(UU::void)"
   594  (fn prems =>
   594  (fn prems =>
   595         [
   595         [
   826         (rtac allI 1),
   826         (rtac allI 1),
   827         (dtac spec 1),
   827         (dtac spec 1),
   828         (etac spec 1)
   828         (etac spec 1)
   829         ]);
   829         ]);
   830 
   830 
   831 val adm_all2 = (allI RS adm_all);
   831 bind_thm ("adm_all2", allI RS adm_all);
   832 
   832 
   833 qed_goal "adm_subst"  Fix.thy  
   833 qed_goal "adm_subst"  Fix.thy  
   834         "[|cont t; adm P|] ==> adm(%x. P (t x))"
   834         "[|cont t; adm P|] ==> adm(%x. P (t x))"
   835  (fn prems =>
   835  (fn prems =>
   836         [
   836         [