:- pred progress(int::in, int::in, int::out, int::out) is det. progress(Past, Future, At, Total) :- At = Past + 1, Total = Past + Future. progress(Past, Future, At, Total) :- Past + Future = Total, Past + 1 = At.