:- multifile(pcompare/4). :- multifile(ptype/2). pcompare(hex, hex(A), hex(B), C) :- hex_map(A, B, C). pcompare(hex2, hex2(A1,B1), hex2(A2,B2), C) :- hex_map(A1, A2, Ch1), hex2_cmp(Ch1, B1, B2, C). hex2_cmp(=, B1, B2, C) :- hex_map(B1, B2, C). hex2_cmp(>, _, _, >). hex2_cmp(<, _, _, <). ptype(hex(H), hex) :- hex(H). ptype(hex2(H1,H2), hex2) :- hex(H1), hex(H2). % hex(HexValue). hex(0). hex(1). hex(2). hex(3). hex(4). hex(5). hex(6). hex(7). hex(8). hex(9). hex(a). hex(b). hex(c). hex(d). hex(e). hex(f). % map 0 hex_map(0, 0, =). hex_map(0, 1, <). hex_map(0, 2, <). hex_map(0, 3, <). hex_map(0, 4, <). hex_map(0, 5, <). hex_map(0, 6, <). hex_map(0, 7, <). hex_map(0, 8, <). hex_map(0, 9, <). hex_map(0, a, <). hex_map(0, b, <). hex_map(0, c, <). hex_map(0, d, <). hex_map(0, e, <). hex_map(0, f, <). % map 1 hex_map(1, 0, >). hex_map(1, 1, =). hex_map(1, 2, <). hex_map(1, 3, <). hex_map(1, 4, <). hex_map(1, 5, <). hex_map(1, 6, <). hex_map(1, 7, <). hex_map(1, 8, <). hex_map(1, 9, <). hex_map(1, a, <). hex_map(1, b, <). hex_map(1, c, <). hex_map(1, d, <). hex_map(1, e, <). hex_map(1, f, <). % map 2 hex_map(2, 0, >). hex_map(2, 1, >). hex_map(2, 2, =). hex_map(2, 3, <). hex_map(2, 4, <). hex_map(2, 5, <). hex_map(2, 6, <). hex_map(2, 7, <). hex_map(2, 8, <). hex_map(2, 9, <). hex_map(2, a, <). hex_map(2, b, <). hex_map(2, c, <). hex_map(2, d, <). hex_map(2, e, <). hex_map(2, f, <). % map 3 hex_map(3, 0, >). hex_map(3, 1, >). hex_map(3, 2, >). hex_map(3, 3, =). hex_map(3, 4, <). hex_map(3, 5, <). hex_map(3, 6, <). hex_map(3, 7, <). hex_map(3, 8, <). hex_map(3, 9, <). hex_map(3, a, <). hex_map(3, b, <). hex_map(3, c, <). hex_map(3, d, <). hex_map(3, e, <). hex_map(3, f, <). % map 4 hex_map(4, 0, >). hex_map(4, 1, >). hex_map(4, 2, >). hex_map(4, 3, >). hex_map(4, 4, =). hex_map(4, 5, <). hex_map(4, 6, <). hex_map(4, 7, <). hex_map(4, 8, <). hex_map(4, 9, <). hex_map(4, a, <). hex_map(4, b, <). hex_map(4, c, <). hex_map(4, d, <). hex_map(4, e, <). hex_map(4, f, <). % map 5 hex_map(5, 0, >). hex_map(5, 1, >). hex_map(5, 2, >). hex_map(5, 3, >). hex_map(5, 4, >). hex_map(5, 5, =). hex_map(5, 6, <). hex_map(5, 7, <). hex_map(5, 8, <). hex_map(5, 9, <). hex_map(5, a, <). hex_map(5, b, <). hex_map(5, c, <). hex_map(5, d, <). hex_map(5, e, <). hex_map(5, f, <). % map 6 hex_map(6, 0, >). hex_map(6, 1, >). hex_map(6, 2, >). hex_map(6, 3, >). hex_map(6, 4, >). hex_map(6, 5, >). hex_map(6, 6, =). hex_map(6, 7, <). hex_map(6, 8, <). hex_map(6, 9, <). hex_map(6, a, <). hex_map(6, b, <). hex_map(6, c, <). hex_map(6, d, <). hex_map(6, e, <). hex_map(6, f, <). % map 7 hex_map(7, 0, >). hex_map(7, 1, >). hex_map(7, 2, >). hex_map(7, 3, >). hex_map(7, 4, >). hex_map(7, 5, >). hex_map(7, 6, >). hex_map(7, 7, =). hex_map(7, 8, <). hex_map(7, 9, <). hex_map(7, a, <). hex_map(7, b, <). hex_map(7, c, <). hex_map(7, d, <). hex_map(7, e, <). hex_map(7, f, <). % map 8 hex_map(8, 0, >). hex_map(8, 1, >). hex_map(8, 2, >). hex_map(8, 3, >). hex_map(8, 4, >). hex_map(8, 5, >). hex_map(8, 6, >). hex_map(8, 7, >). hex_map(8, 8, =). hex_map(8, 9, <). hex_map(8, a, <). hex_map(8, b, <). hex_map(8, c, <). hex_map(8, d, <). hex_map(8, e, <). hex_map(8, f, <). % map 9 hex_map(9, 0, >). hex_map(9, 1, >). hex_map(9, 2, >). hex_map(9, 3, >). hex_map(9, 4, >). hex_map(9, 5, >). hex_map(9, 6, >). hex_map(9, 7, >). hex_map(9, 8, >). hex_map(9, 9, =). hex_map(9, a, <). hex_map(9, b, <). hex_map(9, c, <). hex_map(9, d, <). hex_map(9, e, <). hex_map(9, f, <). % map a hex_map(a, 0, >). hex_map(a, 1, >). hex_map(a, 2, >). hex_map(a, 3, >). hex_map(a, 4, >). hex_map(a, 5, >). hex_map(a, 6, >). hex_map(a, 7, >). hex_map(a, 8, >). hex_map(a, 9, >). hex_map(a, a, =). hex_map(a, b, >). hex_map(a, c, <). hex_map(a, d, <). hex_map(a, e, <). hex_map(a, f, <). % map b hex_map(b, 0, >). hex_map(b, 1, >). hex_map(b, 2, >). hex_map(b, 3, >). hex_map(b, 4, >). hex_map(b, 5, >). hex_map(b, 6, >). hex_map(b, 7, >). hex_map(b, 8, >). hex_map(b, 9, >). hex_map(b, a, >). hex_map(b, b, =). hex_map(b, c, <). hex_map(b, d, <). hex_map(b, e, <). hex_map(b, f, <). % map c hex_map(c, 0, >). hex_map(c, 1, >). hex_map(c, 2, >). hex_map(c, 3, >). hex_map(c, 4, >). hex_map(c, 5, >). hex_map(c, 6, >). hex_map(c, 7, >). hex_map(c, 8, >). hex_map(c, 9, >). hex_map(c, a, >). hex_map(c, b, >). hex_map(c, c, =). hex_map(c, d, <). hex_map(c, e, <). hex_map(c, f, <). % map d hex_map(d, 0, >). hex_map(d, 1, >). hex_map(d, 2, >). hex_map(d, 3, >). hex_map(d, 4, >). hex_map(d, 5, >). hex_map(d, 6, >). hex_map(d, 7, >). hex_map(d, 8, >). hex_map(d, 9, >). hex_map(d, a, >). hex_map(d, b, >). hex_map(d, c, >). hex_map(d, d, =). hex_map(d, e, <). hex_map(d, f, <). % map e hex_map(e, 0, >). hex_map(e, 1, >). hex_map(e, 2, >). hex_map(e, 3, >). hex_map(e, 4, >). hex_map(e, 5, >). hex_map(e, 6, >). hex_map(e, 7, >). hex_map(e, 8, >). hex_map(e, 9, >). hex_map(e, a, >). hex_map(e, b, >). hex_map(e, c, >). hex_map(e, d, >). hex_map(e, e, =). hex_map(e, f, <). % map f hex_map(f, 0, >). hex_map(f, 1, >). hex_map(f, 2, >). hex_map(f, 3, >). hex_map(f, 4, >). hex_map(f, 5, >). hex_map(f, 6, >). hex_map(f, 7, >). hex_map(f, 8, >). hex_map(f, 9, >). hex_map(f, a, >). hex_map(f, b, >). hex_map(f, c, >). hex_map(f, d, >). hex_map(f, e, >). hex_map(f, f, =).