mergesortConsx'ConsxxssplitmergeConsx'ConsxxsNilNilmergesortConsxNilConsxNilmergeConsx'xs'Consxxsmerge[Ite]<=x'xConsx'xs'ConsxxsmergeConsxxsNilConsxxssplitmergeConsxxsxs1xs2splitmergexsConsxxs2xs1splitmergeNilxs1xs2mergemergesortxs1mergesortxs2mergesortNilNilmergeNilxs2xs2notEmptyConsxxsTruenotEmptyNilFalsegoalxsmergesortxs<=SxSy<=xy<=0yTrue<=Sx0Falsemerge[Ite]Falsexs1ConsxxsConsxmergexs1xsmerge[Ite]TrueConsxxsxs2Consxmergexsxs2merge[Ite]3True0mergesort1Nil0merge2<=2splitmerge3S1Cons200notEmpty1goal1False0INNERMOSTFrederiksen_Glenstrup/mergesort.tml.trs