src/HOL/Library/Infinite_Set.thy
changeset 34941 156925dd67af
parent 34113 dbc0fb6e7eae
child 35056 d97b5c3af6d5
equal deleted inserted replaced
34940:3e80eab831a1 34941:156925dd67af
   528 
   528 
   529 text {*
   529 text {*
   530   The set's element type must be wellordered (e.g. the natural numbers).
   530   The set's element type must be wellordered (e.g. the natural numbers).
   531 *}
   531 *}
   532 
   532 
   533 consts
   533 primrec (in wellorder) enumerate :: "'a set \<Rightarrow> nat \<Rightarrow> 'a" where
   534   enumerate   :: "'a::wellorder set => (nat => 'a::wellorder)"
   534     enumerate_0:   "enumerate S 0       = (LEAST n. n \<in> S)"
   535 primrec
   535   | enumerate_Suc: "enumerate S (Suc n) = enumerate (S - {LEAST n. n \<in> S}) n"
   536   enumerate_0:   "enumerate S 0       = (LEAST n. n \<in> S)"
       
   537   enumerate_Suc: "enumerate S (Suc n) = enumerate (S - {LEAST n. n \<in> S}) n"
       
   538 
   536 
   539 lemma enumerate_Suc':
   537 lemma enumerate_Suc':
   540     "enumerate S (Suc n) = enumerate (S - {enumerate S 0}) n"
   538     "enumerate S (Suc n) = enumerate (S - {enumerate S 0}) n"
   541   by simp
   539   by simp
   542 
   540