?- sub_ord([1,2,2,9,6,8,4,2,4,5],L).
L = [1,2,2,9];
L = [6,8];
L = [2,4,5];
No
?- sub_ord([6,5,1,1,4,6,8,7,5,1,3,3,5],L).
L = [1,1,4,6,8];
L = [1,3,3,5];
No
?- sub_ord([6,5,2,1],L). No
?- branch(node(node(leaf(4),2,node(leaf(6),5,leaf(7))),1,leaf(3)),L). L = [1,2,4]; L = [1,2,5,6]; L = [1,2,5,7]; L = [1,3]; No
/* a
/ \
b c
/ \
d e
/ \
f g
/ \
h i */
?- branch(node(leaf(b),a,node(node(leaf(f),d,node(leaf(h),g,leaf(i))),c,leaf(e))),L).
L = [a, b] ;
L = [a, c, d, f] ;
L = [a, c, d, g, h] ;
L = [a, c, d, g, i] ;
L = [a, c, e] ;
No
?- can_exit(5,5). No ?- can_exit(5,8). Yes
?- can_exit(6,8). No ?- can_exit(4,5). Yes