ex/insort.thy
changeset 46 a73f8a7784bd
child 48 21291189b51e
equal deleted inserted replaced
45:3d5b2b874e14 46:a73f8a7784bd
       
     1 (*  Title: 	HOL/ex/insort.thy
       
     2     ID:         $Id$
       
     3     Author: 	Tobias Nipkow
       
     4     Copyright   1994 TU Muenchen
       
     5 
       
     6 Insertion sort
       
     7 *)
       
     8 
       
     9 InSort  =  Sorting +
       
    10 
       
    11 consts
       
    12   ins :: "[['a,'a]=>bool, 'a, 'a list] => 'a list"
       
    13   insort :: "[['a,'a]=>bool, 'a list] => 'a list"
       
    14 
       
    15 rules
       
    16   ins_Nil  "ins(f,x,[]) = [x]"
       
    17   ins_Cons "ins(f,x,Cons(y,ys)) =   \
       
    18 \	       if(f(x,y), Cons(x,Cons(y,ys)), Cons(y, ins(f,x,ys)))"
       
    19 
       
    20   insort_Nil  "insort(f,[]) = []"
       
    21   insort_Cons "insort(f,Cons(x,xs)) = ins(f,x,insort(f,xs))"
       
    22 end