minsort
Cons
x
xs
appmin
x
xs
Cons
x
xs
minsort
Nil
Nil
appmin
min
Cons
x
xs
xs'
appmin[Ite][True][Ite]
<
x
min
min
Cons
x
xs
xs'
appmin
min
Nil
xs
Cons
min
minsort
remove
min
xs
notEmpty
Cons
x
xs
True
notEmpty
Nil
False
remove
x'
Cons
x
xs
remove[Ite]
!EQ
x'
x
x'
Cons
x
xs
!EQ
S
x
S
y
!EQ
x
y
!EQ
0
S
y
False
!EQ
S
x
0
False
!EQ
0
0
True
<
S
x
S
y
<
x
y
<
0
S
y
True
<
x
0
False
remove[Ite]
False
x'
Cons
x
xs
Cons
x
remove
x'
xs
appmin[Ite][True][Ite]
True
min
Cons
x
xs
xs'
appmin
x
xs
xs'
remove[Ite]
True
x'
Cons
x
xs
xs
appmin[Ite][True][Ite]
False
min
Cons
x
xs
xs'
appmin
min
xs
xs'
minsort
1
True
0
Nil
0
appmin
3
remove[Ite]
3
!EQ
2
<
2
S
1
Cons
2
appmin[Ite][True][Ite]
4
0
0
remove
2
notEmpty
1
False
0
INNERMOST