343 definition "card_UNIV = Phantom('a set) |
343 definition "card_UNIV = Phantom('a set) |
344 (let c = of_phantom (card_UNIV :: 'a card_UNIV) in if c = 0 then 0 else 2 ^ c)" |
344 (let c = of_phantom (card_UNIV :: 'a card_UNIV) in if c = 0 then 0 else 2 ^ c)" |
345 instance by intro_classes (simp add: card_UNIV_set_def card_UNIV_set card_UNIV) |
345 instance by intro_classes (simp add: card_UNIV_set_def card_UNIV_set card_UNIV) |
346 end |
346 end |
347 |
347 |
348 lemma UNIV_finite_1: "UNIV = set [finite_1.a\<^isub>1]" |
348 lemma UNIV_finite_1: "UNIV = set [finite_1.a\<^sub>1]" |
349 by(auto intro: finite_1.exhaust) |
349 by(auto intro: finite_1.exhaust) |
350 |
350 |
351 lemma UNIV_finite_2: "UNIV = set [finite_2.a\<^isub>1, finite_2.a\<^isub>2]" |
351 lemma UNIV_finite_2: "UNIV = set [finite_2.a\<^sub>1, finite_2.a\<^sub>2]" |
352 by(auto intro: finite_2.exhaust) |
352 by(auto intro: finite_2.exhaust) |
353 |
353 |
354 lemma UNIV_finite_3: "UNIV = set [finite_3.a\<^isub>1, finite_3.a\<^isub>2, finite_3.a\<^isub>3]" |
354 lemma UNIV_finite_3: "UNIV = set [finite_3.a\<^sub>1, finite_3.a\<^sub>2, finite_3.a\<^sub>3]" |
355 by(auto intro: finite_3.exhaust) |
355 by(auto intro: finite_3.exhaust) |
356 |
356 |
357 lemma UNIV_finite_4: "UNIV = set [finite_4.a\<^isub>1, finite_4.a\<^isub>2, finite_4.a\<^isub>3, finite_4.a\<^isub>4]" |
357 lemma UNIV_finite_4: "UNIV = set [finite_4.a\<^sub>1, finite_4.a\<^sub>2, finite_4.a\<^sub>3, finite_4.a\<^sub>4]" |
358 by(auto intro: finite_4.exhaust) |
358 by(auto intro: finite_4.exhaust) |
359 |
359 |
360 lemma UNIV_finite_5: |
360 lemma UNIV_finite_5: |
361 "UNIV = set [finite_5.a\<^isub>1, finite_5.a\<^isub>2, finite_5.a\<^isub>3, finite_5.a\<^isub>4, finite_5.a\<^isub>5]" |
361 "UNIV = set [finite_5.a\<^sub>1, finite_5.a\<^sub>2, finite_5.a\<^sub>3, finite_5.a\<^sub>4, finite_5.a\<^sub>5]" |
362 by(auto intro: finite_5.exhaust) |
362 by(auto intro: finite_5.exhaust) |
363 |
363 |
364 instantiation Enum.finite_1 :: card_UNIV begin |
364 instantiation Enum.finite_1 :: card_UNIV begin |
365 definition "finite_UNIV = Phantom(Enum.finite_1) True" |
365 definition "finite_UNIV = Phantom(Enum.finite_1) True" |
366 definition "card_UNIV = Phantom(Enum.finite_1) 1" |
366 definition "card_UNIV = Phantom(Enum.finite_1) 1" |