[m-rev.] diff: fix test case failures due to termination2_info pragmas

Julien Fischer juliensf at cs.mu.OZ.AU
Tue Jun 7 19:23:50 AEST 2005


Estimated hours taken: 1
Branches: main

Fix recent test case failures in the term directory.  The test case
failures were caused by the argument size constraints in the
termination2_info pragmas being in a different order to the expected
outputs in some grades.  (The change in the ordering is due to differences
in the HLDS in each grade.)

Also, fix an additional problem where non-negativity constraints
where being written out as part of the termination2_info pragmas.
This is unnecessary as the analyser assumes that variables are
non-negative anyway.

compiler/term_constr_main.m:
	When writing out argument size constraints in the termination2_info
	pragmas, make sure that we don't write out non-negativity
	constraints.

	Sort the constraint set before writing the
	termination2_info pragmas.

tests/term/*.trans_opt_exp.m:
	Minor changes to conform to the above.

Julien.

Index: compiler/term_constr_main.m
===================================================================
RCS file: /home/mercury1/repository/mercury/compiler/term_constr_main.m,v
retrieving revision 1.2
diff -u -r1.2 term_constr_main.m
--- compiler/term_constr_main.m	3 Jun 2005 15:59:39 -0000	1.2
+++ compiler/term_constr_main.m	6 Jun 2005 10:27:26 -0000
@@ -644,10 +644,10 @@
     ;
         MaybeArgSizeConstrs = yes(Polyhedron),
         io.write_string("constraints(", !IO),
-        Constraints = polyhedron.non_false_constraints(Polyhedron),
-        OutputVar = (func(Var) =
-            int_to_string(term.var_to_int(Var))
-        ),
+        Constraints0 = polyhedron.non_false_constraints(Polyhedron),
+        Constraints1 = list.filter(isnt(nonneg_constr), Constraints0),
+        Constraints  = list.sort(Constraints1),
+        OutputVar = (func(Var) = int_to_string(term.var_to_int(Var))),
         lp_rational.output_constraints(OutputVar, Constraints, !IO),
         io.write_char(')', !IO)
     ).
Index: tests/term/ack.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/ack.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 ack.trans_opt_exp
--- tests/term/ack.trans_opt_exp	3 Jun 2005 15:59:40 -0000	1.5
+++ tests/term/ack.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module ack.
 :- pragma termination_info(ack.ack((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
-:- pragma termination2_info(ack.ack((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(2, r(-1, 1))], r(0, 1)), le([term(1, r(-1, 1)), term(3, r(-1, 1))], r(-1, 1))]), not_set, can_loop).
+:- pragma termination2_info(ack.ack((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(1, r(-1, 1)), term(3, r(-1, 1))], r(-1, 1))]), not_set, can_loop).
Index: tests/term/append.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/append.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 append.trans_opt_exp
--- tests/term/append.trans_opt_exp	3 Jun 2005 15:59:41 -0000	1.5
+++ tests/term/append.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module append.
 :- pragma termination_info(append.app((builtin.out), (builtin.out), (builtin.in)), finite(0, [no, no, no, yes]), cannot_loop).
-:- pragma termination2_info(append.app((builtin.out), (builtin.out), (builtin.in)), [7, 1, 2, 3], constraints([eq([term(1, r(1, 1)), term(2, r(1, 1)), term(3, r(-1, 1))], r(0, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(append.app((builtin.out), (builtin.out), (builtin.in)), [7, 1, 2, 3], constraints([eq([term(1, r(1, 1)), term(2, r(1, 1)), term(3, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/dds1_2.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/dds1_2.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 dds1_2.trans_opt_exp
--- tests/term/dds1_2.trans_opt_exp	3 Jun 2005 15:59:41 -0000	1.6
+++ tests/term/dds1_2.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module dds1_2.
 :- pragma termination_info(dds1_2.permute((builtin.in), (builtin.out)), finite(0, [no, yes, no]), cannot_loop).
-:- pragma termination2_info(dds1_2.permute((builtin.in), (builtin.out)), [6, 1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(dds1_2.permute((builtin.in), (builtin.out)), [6, 1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/dds3_13.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/dds3_13.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 dds3_13.trans_opt_exp
--- tests/term/dds3_13.trans_opt_exp	3 Jun 2005 15:59:41 -0000	1.6
+++ tests/term/dds3_13.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module dds3_13.
 :- pragma termination_info(dds3_13.duplicate((builtin.in), (builtin.out)), infinite, cannot_loop).
-:- pragma termination2_info(dds3_13.duplicate((builtin.in), (builtin.out)), [7, 1, 2], constraints([le([term(1, r(-1, 1))], r(0, 1)), eq([term(1, r(1, 1)), term(2, r(-1, 2))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(dds3_13.duplicate((builtin.in), (builtin.out)), [7, 1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 2))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/dds3_15.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/dds3_15.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 dds3_15.trans_opt_exp
--- tests/term/dds3_15.trans_opt_exp	3 Jun 2005 15:59:41 -0000	1.6
+++ tests/term/dds3_15.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module dds3_15.
 :- pragma termination_info(dds3_15.merge((builtin.in), (builtin.in), (builtin.out)), finite(0, [yes, yes, no]), cannot_loop).
-:- pragma termination2_info(dds3_15.merge((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(3, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(dds3_15.merge((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([]), not_set, cannot_loop).
Index: tests/term/fold.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/fold.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 fold.trans_opt_exp
--- tests/term/fold.trans_opt_exp	3 Jun 2005 15:59:42 -0000	1.5
+++ tests/term/fold.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module fold.
 :- pragma termination_info(fold.fold((builtin.in), (builtin.in), (builtin.out)), finite(0, [yes, no, no]), cannot_loop).
-:- pragma termination2_info(fold.fold((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(fold.fold((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([]), not_set, cannot_loop).
Index: tests/term/inf_const_bug.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/inf_const_bug.trans_opt_exp,v
retrieving revision 1.2
diff -u -r1.2 inf_const_bug.trans_opt_exp
--- tests/term/inf_const_bug.trans_opt_exp	3 Jun 2005 15:59:42 -0000	1.2
+++ tests/term/inf_const_bug.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -4,8 +4,8 @@
 :- pragma termination_info(inf_const_bug.square((builtin.in)) = (builtin.out), infinite, cannot_loop).
 :- pragma termination_info(inf_const_bug.multiply((builtin.in), (builtin.in)) = (builtin.out), infinite, cannot_loop).
 :- pragma termination_info(inf_const_bug.map((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
-:- pragma termination2_info(inf_const_bug.foo((builtin.in)) = (builtin.out), [1, 2], constraints([le([term(2, r(-1, 1))], r(-3, 1)), le([term(1, r(-1, 1))], r(-3, 1))]), not_set, can_loop).
-:- pragma termination2_info(inf_const_bug.bar((builtin.in)) = (builtin.out), [1, 2], constraints([le([term(2, r(-1, 1))], r(-1, 1)), le([term(1, r(-1, 1))], r(-1, 1))]), not_set, can_loop).
-:- pragma termination2_info(inf_const_bug.square((builtin.in)) = (builtin.out), [2, 1], constraints([le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
-:- pragma termination2_info(inf_const_bug.multiply((builtin.in), (builtin.in)) = (builtin.out), [1, 2, 3], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(inf_const_bug.foo((builtin.in)) = (builtin.out), [1, 2], constraints([le([term(1, r(-1, 1))], r(-3, 1)), le([term(2, r(-1, 1))], r(-3, 1))]), not_set, can_loop).
+:- pragma termination2_info(inf_const_bug.bar((builtin.in)) = (builtin.out), [1, 2], constraints([le([term(1, r(-1, 1))], r(-1, 1)), le([term(2, r(-1, 1))], r(-1, 1))]), not_set, can_loop).
+:- pragma termination2_info(inf_const_bug.square((builtin.in)) = (builtin.out), [2, 1], constraints([]), not_set, cannot_loop).
+:- pragma termination2_info(inf_const_bug.multiply((builtin.in), (builtin.in)) = (builtin.out), [1, 2, 3], constraints([]), not_set, cannot_loop).
 :- pragma termination2_info(inf_const_bug.map((builtin.in), (builtin.in)) = (builtin.out), [8, 9, 1, 2, 3], constraints([]), not_set, can_loop).
Index: tests/term/member.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/member.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 member.trans_opt_exp
--- tests/term/member.trans_opt_exp	3 Jun 2005 15:59:43 -0000	1.5
+++ tests/term/member.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module member.
 :- pragma termination_info(member.member((builtin.out), (builtin.in)), finite(-1, [no, no, yes]), cannot_loop).
-:- pragma termination2_info(member.member((builtin.out), (builtin.in)), [3, 1, 2], constraints([le([term(2, r(-1, 1))], r(-2, 1)), le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(member.member((builtin.out), (builtin.in)), [3, 1, 2], constraints([le([term(2, r(-1, 1))], r(-2, 1))]), not_set, cannot_loop).
Index: tests/term/mergesort.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/mergesort.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 mergesort.trans_opt_exp
--- tests/term/mergesort.trans_opt_exp	3 Jun 2005 15:59:43 -0000	1.5
+++ tests/term/mergesort.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module mergesort.
 :- pragma termination_info(mergesort.mergesort((builtin.in), (builtin.out)), finite(0, [yes, no]), can_loop).
-:- pragma termination2_info(mergesort.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, can_loop).
+:- pragma termination2_info(mergesort.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([]), not_set, can_loop).
Index: tests/term/mergesort_ap.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/mergesort_ap.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 mergesort_ap.trans_opt_exp
--- tests/term/mergesort_ap.trans_opt_exp	3 Jun 2005 15:59:43 -0000	1.5
+++ tests/term/mergesort_ap.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module mergesort_ap.
 :- pragma termination_info(mergesort_ap.mergesort((builtin.in), (builtin.out), (builtin.in)), finite(0, [yes, no, no]), cannot_loop).
-:- pragma termination2_info(mergesort_ap.mergesort((builtin.in), (builtin.out), (builtin.in)), [1, 2, 3], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(mergesort_ap.mergesort((builtin.in), (builtin.out), (builtin.in)), [1, 2, 3], constraints([]), not_set, cannot_loop).
Index: tests/term/mergesort_t.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/mergesort_t.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 mergesort_t.trans_opt_exp
--- tests/term/mergesort_t.trans_opt_exp	3 Jun 2005 15:59:43 -0000	1.5
+++ tests/term/mergesort_t.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module mergesort_t.
 :- pragma termination_info(mergesort_t.mergesort((builtin.in), (builtin.out)), infinite, can_loop).
-:- pragma termination2_info(mergesort_t.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(mergesort_t.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([]), not_set, cannot_loop).
Index: tests/term/mmatrix.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/mmatrix.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 mmatrix.trans_opt_exp
--- tests/term/mmatrix.trans_opt_exp	3 Jun 2005 15:59:43 -0000	1.5
+++ tests/term/mmatrix.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module mmatrix.
 :- pragma termination_info(mmatrix.mmultiply((builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
-:- pragma termination2_info(mmatrix.mmultiply((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(3, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(mmatrix.mmultiply((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([]), not_set, cannot_loop).
Index: tests/term/my_list.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/my_list.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 my_list.trans_opt_exp
--- tests/term/my_list.trans_opt_exp	3 Jun 2005 15:59:43 -0000	1.6
+++ tests/term/my_list.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module my_list.
 :- pragma termination_info(my_list.list((builtin.in)), finite(0, [no, no]), cannot_loop).
-:- pragma termination2_info(my_list.list((builtin.in)), [4, 1], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(my_list.list((builtin.in)), [4, 1], constraints([]), not_set, cannot_loop).
Index: tests/term/occur.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/occur.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 occur.trans_opt_exp
--- tests/term/occur.trans_opt_exp	3 Jun 2005 15:59:44 -0000	1.5
+++ tests/term/occur.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module occur.
 :- pragma termination_info(occur.occurall((builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
-:- pragma termination2_info(occur.occurall((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([eq([term(1, r(1, 1)), term(3, r(-1, 3))], r(0, 1)), le([term(1, r(-1, 1)), term(3, r(2, 9))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(occur.occurall((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(1, r(-1, 1)), term(3, r(2, 9))], r(0, 1)), eq([term(1, r(1, 1)), term(3, r(-1, 3))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/ordered.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/ordered.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 ordered.trans_opt_exp
--- tests/term/ordered.trans_opt_exp	3 Jun 2005 15:59:44 -0000	1.5
+++ tests/term/ordered.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module ordered.
 :- pragma termination_info(ordered.ordered((builtin.in)), finite(0, [no]), cannot_loop).
-:- pragma termination2_info(ordered.ordered((builtin.in)), [1], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(ordered.ordered((builtin.in)), [1], constraints([]), not_set, cannot_loop).
Index: tests/term/pl4_4_3.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl4_4_3.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 pl4_4_3.trans_opt_exp
--- tests/term/pl4_4_3.trans_opt_exp	3 Jun 2005 15:59:45 -0000	1.6
+++ tests/term/pl4_4_3.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl4_4_3.
 :- pragma termination_info(pl4_4_3.merge((builtin.in), (builtin.in), (builtin.out)), finite(0, [yes, yes, no]), cannot_loop).
-:- pragma termination2_info(pl4_4_3.merge((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(3, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl4_4_3.merge((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([]), not_set, cannot_loop).
Index: tests/term/pl4_4_6a.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl4_4_6a.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 pl4_4_6a.trans_opt_exp
--- tests/term/pl4_4_6a.trans_opt_exp	3 Jun 2005 15:59:45 -0000	1.5
+++ tests/term/pl4_4_6a.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl4_4_6a.
 :- pragma termination_info(pl4_4_6a.perm((builtin.in), (builtin.out)), finite(0, [no, yes, no]), cannot_loop).
-:- pragma termination2_info(pl4_4_6a.perm((builtin.in), (builtin.out)), [6, 1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl4_4_6a.perm((builtin.in), (builtin.out)), [6, 1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/pl6_1_1.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl6_1_1.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 pl6_1_1.trans_opt_exp
--- tests/term/pl6_1_1.trans_opt_exp	3 Jun 2005 15:59:46 -0000	1.6
+++ tests/term/pl6_1_1.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl6_1_1.
 :- pragma termination_info(pl6_1_1.qsort((builtin.in), (builtin.out)), finite(0, [yes, no]), cannot_loop).
-:- pragma termination2_info(pl6_1_1.qsort((builtin.in), (builtin.out)), [1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl6_1_1.qsort((builtin.in), (builtin.out)), [1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/pl7_2_9.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl7_2_9.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 pl7_2_9.trans_opt_exp
--- tests/term/pl7_2_9.trans_opt_exp	3 Jun 2005 15:59:46 -0000	1.6
+++ tests/term/pl7_2_9.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl7_2_9.
 :- pragma termination_info(pl7_2_9.mult((builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
-:- pragma termination2_info(pl7_2_9.mult((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl7_2_9.mult((builtin.in), (builtin.in), (builtin.out)), [1, 2, 3], constraints([]), not_set, cannot_loop).
Index: tests/term/pl7_6_2b.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl7_6_2b.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 pl7_6_2b.trans_opt_exp
--- tests/term/pl7_6_2b.trans_opt_exp	3 Jun 2005 15:59:46 -0000	1.5
+++ tests/term/pl7_6_2b.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl7_6_2b.
 :- pragma termination_info(pl7_6_2b.reach((builtin.in), (builtin.in), (builtin.in), (builtin.in)), finite(0, [no, no, no, no, no]), can_loop).
-:- pragma termination2_info(pl7_6_2b.reach((builtin.in), (builtin.in), (builtin.in), (builtin.in)), [13, 1, 2, 3, 4], constraints([le([term(3, r(-1, 1))], r(-2, 1)), le([term(1, r(-1, 1))], r(0, 1))]), not_set, can_loop).
+:- pragma termination2_info(pl7_6_2b.reach((builtin.in), (builtin.in), (builtin.in), (builtin.in)), [13, 1, 2, 3, 4], constraints([le([term(3, r(-1, 1))], r(-2, 1))]), not_set, can_loop).
Index: tests/term/pl7_6_2c.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl7_6_2c.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 pl7_6_2c.trans_opt_exp
--- tests/term/pl7_6_2c.trans_opt_exp	3 Jun 2005 15:59:46 -0000	1.5
+++ tests/term/pl7_6_2c.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl7_6_2c.
 :- pragma termination_info(pl7_6_2c.reach((builtin.in), (builtin.in), (builtin.in), (builtin.in)), finite(0, [no, no, no, no, no]), cannot_loop).
-:- pragma termination2_info(pl7_6_2c.reach((builtin.in), (builtin.in), (builtin.in), (builtin.in)), [13, 1, 2, 3, 4], constraints([le([term(2, r(-1, 1))], r(0, 1)), le([term(3, r(-1, 1))], r(-2, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl7_6_2c.reach((builtin.in), (builtin.in), (builtin.in), (builtin.in)), [13, 1, 2, 3, 4], constraints([le([term(3, r(-1, 1))], r(-2, 1))]), not_set, cannot_loop).
Index: tests/term/pl8_2_1.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl8_2_1.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 pl8_2_1.trans_opt_exp
--- tests/term/pl8_2_1.trans_opt_exp	3 Jun 2005 15:59:46 -0000	1.6
+++ tests/term/pl8_2_1.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl8_2_1.
 :- pragma termination_info(pl8_2_1.mergesort((builtin.in), (builtin.out)), finite(0, [yes, no]), can_loop).
-:- pragma termination2_info(pl8_2_1.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, can_loop).
+:- pragma termination2_info(pl8_2_1.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([]), not_set, can_loop).
Index: tests/term/pl8_2_1a.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl8_2_1a.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 pl8_2_1a.trans_opt_exp
--- tests/term/pl8_2_1a.trans_opt_exp	3 Jun 2005 15:59:47 -0000	1.5
+++ tests/term/pl8_2_1a.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl8_2_1a.
 :- pragma termination_info(pl8_2_1a.mergesort((builtin.in), (builtin.out)), finite(0, [yes, no]), cannot_loop).
-:- pragma termination2_info(pl8_2_1a.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl8_2_1a.mergesort((builtin.in), (builtin.out)), [1, 2], constraints([]), not_set, cannot_loop).
Index: tests/term/pl8_4_1.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl8_4_1.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 pl8_4_1.trans_opt_exp
--- tests/term/pl8_4_1.trans_opt_exp	3 Jun 2005 15:59:47 -0000	1.6
+++ tests/term/pl8_4_1.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,5 +1,5 @@
 :- module pl8_4_1.
 :- pragma termination_info(pl8_4_1.even((builtin.in)), finite(0, [no]), cannot_loop).
 :- pragma termination_info(pl8_4_1.odd((builtin.in)), finite(0, [no]), cannot_loop).
-:- pragma termination2_info(pl8_4_1.even((builtin.in)), [1], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl8_4_1.even((builtin.in)), [1], constraints([]), not_set, cannot_loop).
 :- pragma termination2_info(pl8_4_1.odd((builtin.in)), [3], constraints([le([term(3, r(-1, 1))], r(-1, 1))]), not_set, cannot_loop).
Index: tests/term/pl8_4_2.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/pl8_4_2.trans_opt_exp,v
retrieving revision 1.6
diff -u -r1.6 pl8_4_2.trans_opt_exp
--- tests/term/pl8_4_2.trans_opt_exp	3 Jun 2005 15:59:47 -0000	1.6
+++ tests/term/pl8_4_2.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module pl8_4_2.
 :- pragma termination_info(pl8_4_2.e((builtin.in), (builtin.out)), finite(-1, [yes, no]), cannot_loop).
-:- pragma termination2_info(pl8_4_2.e((builtin.in), (builtin.out)), [1, 2], constraints([le([term(1, r(-1, 1)), term(2, r(1, 1))], r(-2, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(pl8_4_2.e((builtin.in), (builtin.out)), [1, 2], constraints([le([term(1, r(-1, 1)), term(2, r(1, 1))], r(-2, 1))]), not_set, cannot_loop).
Index: tests/term/queens.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/queens.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 queens.trans_opt_exp
--- tests/term/queens.trans_opt_exp	3 Jun 2005 15:59:47 -0000	1.5
+++ tests/term/queens.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module queens.
 :- pragma termination_info(queens.queens((builtin.in), (builtin.out)), finite(0, [yes, no]), cannot_loop).
-:- pragma termination2_info(queens.queens((builtin.in), (builtin.out)), [1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(queens.queens((builtin.in), (builtin.out)), [1, 2], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/select.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/select.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 select.trans_opt_exp
--- tests/term/select.trans_opt_exp	3 Jun 2005 15:59:48 -0000	1.5
+++ tests/term/select.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module select.
 :- pragma termination_info(select.select((builtin.out), (builtin.in), (builtin.out)), finite(-1, [no, no, yes, no]), cannot_loop).
-:- pragma termination2_info(select.select((builtin.out), (builtin.in), (builtin.out)), [5, 1, 2, 3], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1)), term(3, r(1, 1))], r(-2, 1)), le([term(3, r(-1, 1))], r(0, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(select.select((builtin.out), (builtin.in), (builtin.out)), [5, 1, 2, 3], constraints([eq([term(1, r(1, 1)), term(2, r(-1, 1)), term(3, r(1, 1))], r(-2, 1))]), not_set, cannot_loop).
Index: tests/term/subset.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/subset.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 subset.trans_opt_exp
--- tests/term/subset.trans_opt_exp	3 Jun 2005 15:59:48 -0000	1.5
+++ tests/term/subset.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,5 +1,5 @@
 :- module subset.
 :- pragma termination_info(subset.subset((builtin.in), (builtin.in)), finite(0, [no, no, no]), cannot_loop).
 :- pragma termination_info(subset.subset((builtin.out), (builtin.in)), infinite, can_loop).
-:- pragma termination2_info(subset.subset((builtin.in), (builtin.in)), [5, 1, 2], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
-:- pragma termination2_info(subset.subset((builtin.out), (builtin.in)), [5, 1, 2], constraints([le([term(1, r(-1, 1))], r(0, 1))]), not_set, can_loop).
+:- pragma termination2_info(subset.subset((builtin.in), (builtin.in)), [5, 1, 2], constraints([]), not_set, cannot_loop).
+:- pragma termination2_info(subset.subset((builtin.out), (builtin.in)), [5, 1, 2], constraints([]), not_set, can_loop).
Index: tests/term/sum.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/sum.trans_opt_exp,v
retrieving revision 1.5
diff -u -r1.5 sum.trans_opt_exp
--- tests/term/sum.trans_opt_exp	3 Jun 2005 15:59:48 -0000	1.5
+++ tests/term/sum.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module sum.
 :- pragma termination_info(sum.sum((builtin.out), (builtin.out), (builtin.in)), finite(0, [no, no, yes]), cannot_loop).
-:- pragma termination2_info(sum.sum((builtin.out), (builtin.out), (builtin.in)), [1, 2, 3], constraints([eq([term(1, r(1, 1)), term(2, r(1, 1)), term(3, r(-1, 1))], r(0, 1)), le([term(1, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
+:- pragma termination2_info(sum.sum((builtin.out), (builtin.out), (builtin.in)), [1, 2, 3], constraints([eq([term(1, r(1, 1)), term(2, r(1, 1)), term(3, r(-1, 1))], r(0, 1))]), not_set, cannot_loop).
Index: tests/term/vangelder.trans_opt_exp
===================================================================
RCS file: /home/mercury1/repository/tests/term/vangelder.trans_opt_exp,v
retrieving revision 1.7
diff -u -r1.7 vangelder.trans_opt_exp
--- tests/term/vangelder.trans_opt_exp	3 Jun 2005 15:59:48 -0000	1.7
+++ tests/term/vangelder.trans_opt_exp	7 Jun 2005 08:33:57 -0000
@@ -1,3 +1,3 @@
 :- module vangelder.
 :- pragma termination_info(vangelder.q((builtin.in), (builtin.in)), finite(0, [no, no]), can_loop).
-:- pragma termination2_info(vangelder.q((builtin.in), (builtin.in)), [1, 2], constraints([eq([term(1, r(1, 1))], r(0, 1)), le([term(2, r(-1, 1))], r(0, 1))]), not_set, can_loop).
+:- pragma termination2_info(vangelder.q((builtin.in), (builtin.in)), [1, 2], constraints([eq([term(1, r(1, 1))], r(0, 1))]), not_set, can_loop).

--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list