check_interval_in_avl_aux(P,Low,Up,CS,WF2) :- print(check_interval_in_avl_aux(P,Low,Up,CS,WF2)),nl,fail.
check_interval_in_avl_aux(pred_true,Low,Up,CS,_WF2) :- print(not_empty),nl,
element_of_custom_set_wf(int(Low),CS,WF),
element_of_custom_set_wf(int(Up),CS,WF),
interval_in_avl_block(Low,Up,CS,WF).
check_interval_in_avl_aux(pred_false,_Low,_Up,_CS,_WF2) :- print(empty),nl. % Interval is empty; but infinitely many solutions for Low and Up
check_interval_in_avl_aux(pred_true,Low,Up,A,_WF2) :- %print(not_empty),nl,
element_of_avl_set_wf(A,int(Low),WF),
element_of_avl_set_wf(A,int(Up),WF),
interval_in_avl_block(Low,Up,A).
check_interval_in_avl_aux(pred_false,_Low,_Up,_A,_WF2) :- print(empty),nl. % Interval is empty; but infinitely many solutions for Low and Up