src/HOL/HOLCF/Universal.thy
changeset 65552 f533820e7248
parent 64267 b9a1486e79be
child 66453 cc19f7ca2ed6
equal deleted inserted replaced
65551:d164c4fc0d2c 65552:f533820e7248
     5 section \<open>A universal bifinite domain\<close>
     5 section \<open>A universal bifinite domain\<close>
     6 
     6 
     7 theory Universal
     7 theory Universal
     8 imports Bifinite Completion "~~/src/HOL/Library/Nat_Bijection"
     8 imports Bifinite Completion "~~/src/HOL/Library/Nat_Bijection"
     9 begin
     9 begin
       
    10 
       
    11 no_notation binomial  (infixl "choose" 65)
    10 
    12 
    11 subsection \<open>Basis for universal domain\<close>
    13 subsection \<open>Basis for universal domain\<close>
    12 
    14 
    13 subsubsection \<open>Basis datatype\<close>
    15 subsubsection \<open>Basis datatype\<close>
    14 
    16 
   974 apply (rule_tac i=a in below_lub)
   976 apply (rule_tac i=a in below_lub)
   975 apply simp
   977 apply simp
   976 apply (simp add: udom_approx_principal)
   978 apply (simp add: udom_approx_principal)
   977 apply (simp add: ubasis_until_same ubasis_le_refl)
   979 apply (simp add: ubasis_until_same ubasis_le_refl)
   978 done
   980 done
   979  
   981 
   980 lemma udom_approx [simp]: "approx_chain udom_approx"
   982 lemma udom_approx [simp]: "approx_chain udom_approx"
   981 proof
   983 proof
   982   show "chain (\<lambda>i. udom_approx i)"
   984   show "chain (\<lambda>i. udom_approx i)"
   983     by (rule chain_udom_approx)
   985     by (rule chain_udom_approx)
   984   show "(\<Squnion>i. udom_approx i) = ID"
   986   show "(\<Squnion>i. udom_approx i) = ID"
   988 instance udom :: bifinite
   990 instance udom :: bifinite
   989   by standard (fast intro: udom_approx)
   991   by standard (fast intro: udom_approx)
   990 
   992 
   991 hide_const (open) node
   993 hide_const (open) node
   992 
   994 
       
   995 notation binomial  (infixl "choose" 65)
       
   996 
   993 end
   997 end