equal
deleted
inserted
replaced
2526 for f :: "'a => 'a => 'a" |
2526 for f :: "'a => 'a => 'a" |
2527 where |
2527 where |
2528 fold1Set_insertI [intro]: |
2528 fold1Set_insertI [intro]: |
2529 "\<lbrakk> fold_graph f a A x; a \<notin> A \<rbrakk> \<Longrightarrow> fold1Set f (insert a A) x" |
2529 "\<lbrakk> fold_graph f a A x; a \<notin> A \<rbrakk> \<Longrightarrow> fold1Set f (insert a A) x" |
2530 |
2530 |
2531 constdefs |
2531 definition fold1 :: "('a => 'a => 'a) => 'a set => 'a" where |
2532 fold1 :: "('a => 'a => 'a) => 'a set => 'a" |
|
2533 "fold1 f A == THE x. fold1Set f A x" |
2532 "fold1 f A == THE x. fold1Set f A x" |
2534 |
2533 |
2535 lemma fold1Set_nonempty: |
2534 lemma fold1Set_nonempty: |
2536 "fold1Set f A x \<Longrightarrow> A \<noteq> {}" |
2535 "fold1Set f A x \<Longrightarrow> A \<noteq> {}" |
2537 by(erule fold1Set.cases, simp_all) |
2536 by(erule fold1Set.cases, simp_all) |