diff --git a/src/purescala/Analysis.scala b/src/purescala/Analysis.scala index 8e7279cd743adf92535592fecb462feb1e56992d..e7f95834573f62c70b66a5970c54b9731dbab813 100644 --- a/src/purescala/Analysis.scala +++ b/src/purescala/Analysis.scala @@ -111,21 +111,23 @@ class Analysis(val program: Program) { } } - verifiedVCs = verifiedVCs.reverse - val col1wdth = verifiedVCs.map(_._1).map(_.length).max + 2 - val col2wdth = verifiedVCs.map(_._2).map(_.length).max + 2 - val col3wdth = verifiedVCs.map(_._3).map(_.length).max + 2 - val col4wdth = verifiedVCs.map(_._4).map(_.length).max - def mk1line(line: (String,String,String,String)) : String = { - line._1 + (" " * (col1wdth - line._1.length)) + - line._2 + (" " * (col2wdth - line._2.length)) + - line._3 + (" " * (col3wdth - line._3.length)) + - line._4 + if(verifiedVCs.size > 0) { + verifiedVCs = verifiedVCs.reverse + val col1wdth = verifiedVCs.map(_._1).map(_.length).max + 2 + val col2wdth = verifiedVCs.map(_._2).map(_.length).max + 2 + val col3wdth = verifiedVCs.map(_._3).map(_.length).max + 2 + val col4wdth = verifiedVCs.map(_._4).map(_.length).max + def mk1line(line: (String,String,String,String)) : String = { + line._1 + (" " * (col1wdth - line._1.length)) + + line._2 + (" " * (col2wdth - line._2.length)) + + line._3 + (" " * (col3wdth - line._3.length)) + + line._4 + } + val dashes : String = "=" * (col1wdth + col2wdth + col3wdth + col4wdth) + reporter.info("Summary:\n" + dashes + "\n" + verifiedVCs.map(mk1line(_)).mkString("\n") + "\n" + dashes) + } else { + reporter.info("No verification conditions were generated.") } - val dashes : String = "=" * (col1wdth + col2wdth + col3wdth + col4wdth) - - reporter.info("Summary:\n" + dashes + "\n" + verifiedVCs.map(mk1line(_)).mkString("\n") + "\n" + dashes) - } def postconditionVC(functionDefinition: FunDef) : Expr = { diff --git a/testcases/MergeSort.scala b/testcases/MergeSort.scala index 565359a771cda2f592236e92f5baa9e3eedffa40..4dd8a2793d9abbc7d558f2f0110f990c13d5be07 100644 --- a/testcases/MergeSort.scala +++ b/testcases/MergeSort.scala @@ -14,8 +14,10 @@ object MergeSort { def is_sorted(l: List): Boolean = l match { case Nil() => true - case Cons(x,Nil()) => true - case Cons(x,Cons(y,xs)) => x<=y && is_sorted(Cons(y,xs)) + case Cons(x,xs) => xs match { + case Nil() => true + case Cons(y, ys) => x <= y && is_sorted(Cons(y, ys)) + } } def length(list:List): Int = list match {