equal
deleted
inserted
replaced
209 |
209 |
210 class card_UNIV = finite_UNIV + |
210 class card_UNIV = finite_UNIV + |
211 fixes card_UNIV :: "'a card_UNIV" |
211 fixes card_UNIV :: "'a card_UNIV" |
212 assumes card_UNIV: "card_UNIV = Phantom('a) CARD('a)" |
212 assumes card_UNIV: "card_UNIV = Phantom('a) CARD('a)" |
213 |
213 |
214 subsection \<open>Instantiations for @{text "card_UNIV"}\<close> |
214 subsection \<open>Instantiations for \<open>card_UNIV\<close>\<close> |
215 |
215 |
216 instantiation nat :: card_UNIV begin |
216 instantiation nat :: card_UNIV begin |
217 definition "finite_UNIV = Phantom(nat) False" |
217 definition "finite_UNIV = Phantom(nat) False" |
218 definition "card_UNIV = Phantom(nat) 0" |
218 definition "card_UNIV = Phantom(nat) 0" |
219 instance by intro_classes (simp_all add: finite_UNIV_nat_def card_UNIV_nat_def) |
219 instance by intro_classes (simp_all add: finite_UNIV_nat_def card_UNIV_nat_def) |
532 else Code.abort |
532 else Code.abort |
533 (STR ''subset_eq (List.coset _) (List.set _) requires type class instance card_UNIV'') |
533 (STR ''subset_eq (List.coset _) (List.set _) requires type class instance card_UNIV'') |
534 (\<lambda>_. List.coset xs \<subseteq> set ys))" |
534 (\<lambda>_. List.coset xs \<subseteq> set ys))" |
535 by simp |
535 by simp |
536 |
536 |
537 notepad begin -- "test code setup" |
537 notepad begin \<comment> "test code setup" |
538 have "List.coset [True] = set [False] \<and> |
538 have "List.coset [True] = set [False] \<and> |
539 List.coset [] \<subseteq> List.set [True, False] \<and> |
539 List.coset [] \<subseteq> List.set [True, False] \<and> |
540 finite (List.coset [True])" |
540 finite (List.coset [True])" |
541 by eval |
541 by eval |
542 end |
542 end |