Files
circ/examples/datalog/dec.pl
Alex Ozdemir 4ffa05fca6 Datalog (#26)
Support a datalog variant.
2021-11-30 13:26:25 -08:00

13 lines
287 B
Prolog

hash(X: u8[5], Y: u8[5], decreasing n: u8) :-
n = 0x00, X = Y;
exists Z: u8[5].
!(n = 0x00),
X[0] + X[1] = Z[0],
X[1] - X[2] = Z[1],
X[2] | X[3] = Z[2],
X[3] ^ X[4] = Z[3],
hash(Z, Y, n-0x01).
main(X: private u8[5], Y: public u8[5]) :-
hash(X, Y, 0x05).