| 
1476
 | 
     1  | 
(*  Title:      HOL/ex/insort.thy
  | 
| 
969
 | 
     2  | 
    ID:         $Id$
  | 
| 
1476
 | 
     3  | 
    Author:     Tobias Nipkow
  | 
| 
969
 | 
     4  | 
    Copyright   1994 TU Muenchen
  | 
| 
 | 
     5  | 
  | 
| 
 | 
     6  | 
Insertion sort
  | 
| 
 | 
     7  | 
*)
  | 
| 
 | 
     8  | 
  | 
| 
 | 
     9  | 
InSort  =  Sorting +
  | 
| 
 | 
    10  | 
  | 
| 
 | 
    11  | 
consts
  | 
| 
1376
 | 
    12  | 
  ins :: [['a,'a]=>bool, 'a, 'a list] => 'a list
  | 
| 
 | 
    13  | 
  insort :: [['a,'a]=>bool, 'a list] => 'a list
  | 
| 
969
 | 
    14  | 
  | 
| 
5184
 | 
    15  | 
primrec
  | 
| 
8422
 | 
    16  | 
  "ins le x [] = [x]"
  | 
| 
 | 
    17  | 
  "ins le x (y#ys) = (if le x y then (x#y#ys) else y#(ins le x ys))"
  | 
| 
5184
 | 
    18  | 
primrec
  | 
| 
8422
 | 
    19  | 
  "insort le [] = []"
  | 
| 
 | 
    20  | 
  "insort le (x#xs) = ins le x (insort le xs)"
  | 
| 
969
 | 
    21  | 
end
  | 
| 
1896
 | 
    22  | 
  |