diff -r d8986d88295e -r 3b98b1b57435 src/HOL/List.thy --- a/src/HOL/List.thy Mon Jun 16 12:19:23 2025 +0200 +++ b/src/HOL/List.thy Mon Jun 16 15:25:38 2025 +0200 @@ -7988,19 +7988,28 @@ and \<^const>\list_ex1\ in specifications. \ -lemma list_all_simps [code]: - \list_all P (x # xs) \ P x \ list_all P xs\ +lemma list_all_Nil_iff [code, no_atp]: \list_all P [] \ True\ - by (simp_all add: list_all_iff) - -lemma list_ex_simps [simp, code]: + by (simp add: list_all_iff) + +lemma list_all_Cons_iff [code, no_atp]: + \list_all P (x # xs) \ P x \ list_all P xs\ + by (simp add: list_all_iff) + +lemma list_ex_Nil_iff [simp, code, no_atp]: + \list_ex P [] \ False\ + by (simp add: list_ex_iff) + +lemma list_ex_Cons_iff [simp, code, no_atp]: \list_ex P (x # xs) \ P x \ list_ex P xs\ - \list_ex P [] \ False\ - by (simp_all add: list_ex_iff) - -lemma list_ex1_simps [simp, code]: - \list_ex1 P [] = False\ - \list_ex1 P (x # xs) = (if P x then list_all (\y. \ P y \ x = y) xs else list_ex1 P xs)\ + by (simp add: list_ex_iff) + +lemma list_ex1_Nil_iff [simp, code, no_atp]: + \list_ex1 P [] \ False\ + by (auto simp add: list_ex1_iff) + +lemma list_ex1_Cons_iff [simp, code, no_atp]: + \list_ex1 P (x # xs) \ (if P x then list_all (\y. \ P y \ x = y) xs else list_ex1 P xs)\ by (auto simp add: list_ex1_iff list_all_iff) lemma list_all_append [simp]: