equal
deleted
inserted
replaced
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 |