qsort
`xs`
qs
half
length
`xs`
`xs`
qs
`n`
nil
nil
qs
`n`
cons
`x`
`xs`
append
qs
half
`n`
filterlow
get
`n`
cons
`x`
`xs`
cons
`x`
`xs`
cons
get
`n`
cons
`x`
`xs`
qs
half
`n`
filterhigh
get
`n`
cons
`x`
`xs`
cons
`x`
`xs`
filterlow
`n`
nil
nil
filterlow
`n`
cons
`x`
`xs`
if1
ge
`n`
`x`
`n`
`x`
`xs`
if1
true
`n`
`x`
`xs`
filterlow
`n`
`xs`
if1
false
`n`
`x`
`xs`
cons
`x`
filterlow
`n`
`xs`
filterhigh
`n`
nil
nil
filterhigh
`n`
cons
`x`
`xs`
if2
ge
`x`
`n`
`n`
`x`
`xs`
if2
true
`n`
`x`
`xs`
filterhigh
`n`
`xs`
if2
false
`n`
`x`
`xs`
cons
`x`
filterhigh
`n`
`xs`
ge
`x`
0
true
ge
0
s
`x`
false
ge
s
`x`
s
`y`
ge
`x`
`y`
append
nil
ys
ys
append
cons
`x`
`xs`
ys
cons
`x`
append
`xs`
ys
length
nil
0
length
cons
`x`
`xs`
s
length
`xs`
half
0
0
half
s
0
0
half
s
s
`x`
s
half
`x`
get
`n`
nil
0
get
`n`
cons
`x`
nil
`x`
get
0
cons
`x`
cons
`y`
`xs`
`x`
get
s
`n`
cons
`x`
cons
`y`
`xs`
get
`n`
cons
`y`
`xs`
qsort
1
qs
2
half
1
length
1
nil
0
cons
2
append
2
filterlow
2
get
2
filterhigh
2
if1
4
ge
2
true
0
false
0
if2
4
0
0
s
1
ys
0
FULL
./AProVE_09_Inductive/qsortmiddle.trs