Fix bug in finding arity for verify attributes

This commit is contained in:
bakaq
2025-02-01 15:53:15 -03:00
parent c548b14f50
commit b8ccebbf24
7 changed files with 106 additions and 2 deletions

View File

@@ -0,0 +1,30 @@
% Issue 2632
% Repro for cycle detection crash
:- use_module(library(lists)).
:- use_module(library(clpz)).
:- use_module(library(error)).
:- use_module(library(lambda)).
:- use_module(library(debug)).
clpz:monotonic.
q_r(T/N, T:U) :- 0 #=< #T, 0 #=< #U, #N #= T + U.
qs_Ts_Us(Qs, ΣTs, ΣUs) :-
maplist(\Q^T^U^(q_r(Q, T:U)), Qs, Ts, Us),
intlist_partsums(Ts, ΣTs),
intlist_partsums(Us, ΣUs).
%% Utility predicates used above:
intlist_partsums([X|Xs], [X|Ss]) :-
intlist_partsums_acc(Xs, Ss, X).
intlist_partsums_acc([], [], _).
intlist_partsums_acc([X|Xs], [S|Ss], A) :-
#S #= #X + #A,
intlist_partsums_acc(Xs, Ss, S).
test_b :-
once(qs_Ts_Us(_, [1,3], [5,9])).