src/HOL/Quickcheck_Exhaustive.thy
changeset 46417 1a68fcb80b62
parent 46311 56fae81902ce
child 46950 d0181abdbdac
equal deleted inserted replaced
46416:5f5665a0b973 46417:1a68fcb80b62
   423 
   423 
   424 instantiation Enum.finite_2 :: check_all
   424 instantiation Enum.finite_2 :: check_all
   425 begin
   425 begin
   426 
   426 
   427 definition
   427 definition
   428   "check_all f = (case f (Code_Evaluation.valtermify Enum.finite_2.a\<^isub>1) of Some x' \<Rightarrow> Some x' | None \<Rightarrow> f (Code_Evaluation.valtermify Enum.finite_2.a\<^isub>2))"
   428   "check_all f = (f (Code_Evaluation.valtermify Enum.finite_2.a\<^isub>1)
       
   429     orelse f (Code_Evaluation.valtermify Enum.finite_2.a\<^isub>2))"
   429 
   430 
   430 definition enum_term_of_finite_2 :: "Enum.finite_2 itself => unit => term list"
   431 definition enum_term_of_finite_2 :: "Enum.finite_2 itself => unit => term list"
   431 where
   432 where
   432   "enum_term_of_finite_2 = (%_ _. map Code_Evaluation.term_of (Enum.enum :: Enum.finite_2 list))"
   433   "enum_term_of_finite_2 = (%_ _. map Code_Evaluation.term_of (Enum.enum :: Enum.finite_2 list))"
   433 
   434 
   437 
   438 
   438 instantiation Enum.finite_3 :: check_all
   439 instantiation Enum.finite_3 :: check_all
   439 begin
   440 begin
   440 
   441 
   441 definition
   442 definition
   442   "check_all f = (case f (Code_Evaluation.valtermify Enum.finite_3.a\<^isub>1) of Some x' \<Rightarrow> Some x' | None \<Rightarrow> (case f (Code_Evaluation.valtermify Enum.finite_3.a\<^isub>2) of Some x' \<Rightarrow> Some x' | None \<Rightarrow> f (Code_Evaluation.valtermify Enum.finite_3.a\<^isub>3)))"
   443   "check_all f = (f (Code_Evaluation.valtermify Enum.finite_3.a\<^isub>1)
       
   444     orelse f (Code_Evaluation.valtermify Enum.finite_3.a\<^isub>2)
       
   445     orelse f (Code_Evaluation.valtermify Enum.finite_3.a\<^isub>3))"
   443 
   446 
   444 definition enum_term_of_finite_3 :: "Enum.finite_3 itself => unit => term list"
   447 definition enum_term_of_finite_3 :: "Enum.finite_3 itself => unit => term list"
   445 where
   448 where
   446   "enum_term_of_finite_3 = (%_ _. map Code_Evaluation.term_of (Enum.enum :: Enum.finite_3 list))"
   449   "enum_term_of_finite_3 = (%_ _. map Code_Evaluation.term_of (Enum.enum :: Enum.finite_3 list))"
       
   450 
       
   451 instance ..
       
   452 
       
   453 end
       
   454 
       
   455 instantiation Enum.finite_4 :: check_all
       
   456 begin
       
   457 
       
   458 definition
       
   459   "check_all f = (f (Code_Evaluation.valtermify Enum.finite_4.a\<^isub>1)
       
   460     orelse f (Code_Evaluation.valtermify Enum.finite_4.a\<^isub>2)
       
   461     orelse f (Code_Evaluation.valtermify Enum.finite_4.a\<^isub>3)
       
   462     orelse f (Code_Evaluation.valtermify Enum.finite_4.a\<^isub>4))"
       
   463 
       
   464 definition enum_term_of_finite_4 :: "Enum.finite_4 itself => unit => term list"
       
   465 where
       
   466   "enum_term_of_finite_4 = (%_ _. map Code_Evaluation.term_of (Enum.enum :: Enum.finite_4 list))"
   447 
   467 
   448 instance ..
   468 instance ..
   449 
   469 
   450 end
   470 end
   451 
   471