src/HOL/Imperative_HOL/ex/Linked_Lists.thy
changeset 35423 6ef9525a5727
parent 35041 6eb917794a5c
child 36098 53992c639da5
equal deleted inserted replaced
35422:e74b6f3b950c 35423:6ef9525a5727
    25 fun make_llist :: "'a\<Colon>heap list \<Rightarrow> 'a node Heap"
    25 fun make_llist :: "'a\<Colon>heap list \<Rightarrow> 'a node Heap"
    26 where 
    26 where 
    27   [simp del]: "make_llist []     = return Empty"
    27   [simp del]: "make_llist []     = return Empty"
    28             | "make_llist (x#xs) = do tl   \<leftarrow> make_llist xs;
    28             | "make_llist (x#xs) = do tl   \<leftarrow> make_llist xs;
    29                                       next \<leftarrow> Ref.new tl;
    29                                       next \<leftarrow> Ref.new tl;
    30 	                              return (Node x next)
    30                                       return (Node x next)
    31 		                   done"
    31                                    done"
    32 
    32 
    33 
    33 
    34 text {* define traverse using the MREC combinator *}
    34 text {* define traverse using the MREC combinator *}
    35 
    35 
    36 definition
    36 definition