src/HOL/Library/Predicate_Compile_Alternative_Defs.thy
changeset 61585 a9599d3d7610
parent 61424 c3658c18b7bc
child 62597 b3f2b8c906a6
equal deleted inserted replaced
61584:f06e5a5a4b46 61585:a9599d3d7610
   175 apply (induct rule: less_eq_nat.induct)
   175 apply (induct rule: less_eq_nat.induct)
   176 apply auto done
   176 apply auto done
   177 
   177 
   178 section \<open>Alternative list definitions\<close>
   178 section \<open>Alternative list definitions\<close>
   179 
   179 
   180 subsection \<open>Alternative rules for @{text length}\<close>
   180 subsection \<open>Alternative rules for \<open>length\<close>\<close>
   181 
   181 
   182 definition size_list' :: "'a list => nat"
   182 definition size_list' :: "'a list => nat"
   183 where "size_list' = size"
   183 where "size_list' = size"
   184 
   184 
   185 lemma size_list'_simps:
   185 lemma size_list'_simps:
   189 
   189 
   190 declare size_list'_simps[code_pred_def]
   190 declare size_list'_simps[code_pred_def]
   191 declare size_list'_def[symmetric, code_pred_inline]
   191 declare size_list'_def[symmetric, code_pred_inline]
   192 
   192 
   193 
   193 
   194 subsection \<open>Alternative rules for @{text list_all2}\<close>
   194 subsection \<open>Alternative rules for \<open>list_all2\<close>\<close>
   195 
   195 
   196 lemma list_all2_NilI [code_pred_intro]: "list_all2 P [] []"
   196 lemma list_all2_NilI [code_pred_intro]: "list_all2 P [] []"
   197 by auto
   197 by auto
   198 
   198 
   199 lemma list_all2_ConsI [code_pred_intro]: "list_all2 P xs ys ==> P x y ==> list_all2 P (x#xs) (y#ys)"
   199 lemma list_all2_ConsI [code_pred_intro]: "list_all2 P xs ys ==> P x y ==> list_all2 P (x#xs) (y#ys)"