# all-interval-tetrachords.pl -rw-r--r-- 427 bytes View raw
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tetrachord(4-1, [0, 1, 2, 3]).
tetrachord(4-15, [0, 1, 4, 6]).
tetrachord(4-29, [0, 1, 3, 7]).

interval_vector(4-1, [3, 2, 1, 0, 0, 0]).
interval_vector(4-15, [1, 1, 1, 1, 1, 1]).
interval_vector(4-29, [1, 1, 1, 1, 1, 1]).

all_interval_tetrachord(Chord) :-
    tetrachord(4-Number, Chord),
    interval_vector(4-Number, [1, 1, 1, 1, 1, 1]).

?- all_interval_tetrachord(Chord).
%@    Chord = [0,1,4,6]
%@ ;  Chord = [0,1,3,7].