equal
deleted
inserted
replaced
|
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 |