...@...:~/Desktop/cog366/sets/v2$ swipl Welcome to SWI-Prolog (threaded, 64 bits, version 7.6.0-rc2) SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software. Please run ?- license. for legal details. For online help and background, visit http://www.swi-prolog.org For built-in help, use ?- help(Topic). or ?- apropos(Word). ?- consult('crypto.pro'). true. ?- crypto(1,2,3,X). X = ex(1, +, 2) ; false. ?- crypto(8,10,3,X). false. ?- crypto(5,8,2,15,X). X = ex(2, +, ex(5, +, 8)) ; X = ex(5, +, ex(8, +, 2)) ; X = ex(8, +, ex(5, +, 2)) ; false. ?- crypto(1,1,3,6,X). X = ex(3, *, ex(1, +, 1)) ; false. ?- crypto(1,1,3,9,X). false. ?- crypto(12,6,15,0,3,X). X = ex(ex(12, +, 6), -, ex(15, +, 0)) ; X = ex(ex(12, +, 6), -, ex(15, -, 0)) ; X = ex(ex(12, +, 6), +, ex(15, -, 0)) ; X = ex(15, -, ex(0, +, ex(12, +, 6))) ; X = ex(15, -, ex(0, -, ex(12, +, 6))) ; X = ex(0, -, ex(15, -, ex(12, +, 6))) ; X = ex(0, +, ex(15, -, ex(12, +, 6))) ; X = ex(0, -, ex(15, -, ex(12, +, 6))) ; X = ex(ex(12, -, 15), +, ex(6, +, 0)) ; X = ex(ex(12, -, 15), -, ex(6, *, 0)) ; X = ex(ex(12, -, 15), +, ex(6, -, 0)) ; X = ex(ex(12, -, 15), -, ex(6, -, 0)) ; X = ex(ex(12, -, 15), -, ex(6, /, 0)) ; X = ex(6, +, ex(0, +, ex(12, -, 15))) ; X = ex(6, -, ex(0, -, ex(12, -, 15))) ; X = ex(6, +, ex(0, -, ex(12, -, 15))) ; X = ex(0, +, ex(6, +, ex(12, -, 15))) ; X = ex(0, -, ex(6, +, ex(12, -, 15))) ; X = ex(ex(12, -, 15), -, ex(6, +, 0)) ; X = ex(ex(12, -, 15), +, ex(6, *, 0)) ; X = ex(ex(12, -, 15), -, ex(6, *, 0)) ; X = ex(ex(12, -, 15), -, ex(6, -, 0)) ; X = ex(ex(12, -, 15), +, ex(6, /, 0)) ; X = ex(ex(12, -, 15), -, ex(6, /, 0)) ; X = ex(6, -, ex(0, +, ex(12, -, 15))) ; X = ex(6, +, ex(0, -, ex(12, -, 15))) ; X = ex(6, -, ex(0, -, ex(12, -, 15))) ; X = ex(0, +, ex(6, -, ex(12, -, 15))) ; X = ex(0, -, ex(6, -, ex(12, -, 15))) ; X = ex(0, -, ex(6, -, ex(12, -, 15))) ; X = ex(ex(12, +, 0), +, ex(6, -, 15)) ; X = ex(ex(12, +, 0), -, ex(6, -, 15)) ; X = ex(6, -, ex(15, -, ex(12, +, 0))) ; X = ex(6, +, ex(15, -, ex(12, +, 0))) ; X = ex(15, -, ex(6, +, ex(12, +, 0))) ; X = ex(ex(12, -, 0), +, ex(6, -, 15)) ; X = ex(ex(12, -, 0), -, ex(6, -, 15)) ; X = ex(6, -, ex(15, -, ex(12, -, 0))) ; X = ex(6, +, ex(15, -, ex(12, -, 0))) ; X = ex(15, -, ex(6, +, ex(12, -, 0))) ; X = ex(ex(12, -, 0), -, ex(6, -, 15)) ; X = ex(6, -, ex(15, +, ex(12, -, 0))) ; X = ex(15, -, ex(6, -, ex(12, -, 0))) ; X = ex(ex(6, -, 15), +, ex(12, +, 0)) ; X = ex(ex(6, -, 15), +, ex(12, -, 0)) ; X = ex(ex(6, -, 15), -, ex(12, -, 0)) ; X = ex(12, +, ex(0, +, ex(6, -, 15))) ; X = ex(12, -, ex(0, -, ex(6, -, 15))) ; X = ex(12, +, ex(0, -, ex(6, -, 15))) ; X = ex(0, +, ex(12, +, ex(6, -, 15))) ; X = ex(0, -, ex(12, +, ex(6, -, 15))) ; X = ex(ex(6, -, 15), -, ex(12, +, 0)) ; X = ex(ex(6, -, 15), -, ex(12, -, 0)) ; X = ex(12, -, ex(0, +, ex(6, -, 15))) ; X = ex(12, +, ex(0, -, ex(6, -, 15))) ; X = ex(12, -, ex(0, -, ex(6, -, 15))) ; X = ex(0, +, ex(12, -, ex(6, -, 15))) ; X = ex(0, -, ex(12, -, ex(6, -, 15))) ; X = ex(0, -, ex(12, -, ex(6, -, 15))) ; X = ex(ex(6, +, 0), +, ex(12, -, 15)) ; X = ex(ex(6, +, 0), -, ex(12, -, 15)) ; X = ex(12, -, ex(15, -, ex(6, +, 0))) ; X = ex(12, +, ex(15, -, ex(6, +, 0))) ; X = ex(15, -, ex(12, +, ex(6, +, 0))) ; X = ex(ex(6, *, 0), -, ex(12, -, 15)) ; X = ex(ex(6, *, 0), +, ex(12, -, 15)) ; X = ex(ex(6, *, 0), -, ex(12, -, 15)) ; X = ex(12, -, ex(15, +, ex(6, *, 0))) ; X = ex(12, -, ex(15, -, ex(6, *, 0))) ; X = ex(15, -, ex(12, +, ex(6, *, 0))) ; X = ex(15, -, ex(12, -, ex(6, *, 0))) ; X = ex(15, +, ex(12, -, ex(6, *, 0))) ; X = ex(ex(6, -, 0), +, ex(12, -, 15)) ; X = ex(ex(6, -, 0), -, ex(12, -, 15)) ; X = ex(12, -, ex(15, -, ex(6, -, 0))) ; X = ex(12, +, ex(15, -, ex(6, -, 0))) ; X = ex(15, -, ex(12, +, ex(6, -, 0))) ; X = ex(ex(6, -, 0), -, ex(12, -, 15)) ; X = ex(12, -, ex(15, +, ex(6, -, 0))) ; X = ex(15, -, ex(12, -, ex(6, -, 0))) ; X = ex(ex(6, /, 0), -, ex(12, -, 15)) ; X = ex(ex(6, /, 0), +, ex(12, -, 15)) ; X = ex(ex(6, /, 0), -, ex(12, -, 15)) ; X = ex(12, -, ex(15, +, ex(6, /, 0))) ; X = ex(12, -, ex(15, -, ex(6, /, 0))) ; X = ex(15, -, ex(12, +, ex(6, /, 0))) ; X = ex(15, -, ex(12, -, ex(6, /, 0))) ; X = ex(15, +, ex(12, -, ex(6, /, 0))) ; X = ex(ex(15, +, 0), -, ex(12, +, 6)) ; X = ex(12, +, ex(6, -, ex(15, +, 0))) ; X = ex(12, -, ex(6, -, ex(15, +, 0))) ; X = ex(6, +, ex(12, -, ex(15, +, 0))) ; X = ex(6, -, ex(12, -, ex(15, +, 0))) ; X = ex(ex(15, -, 0), -, ex(12, +, 6)) ; X = ex(12, +, ex(6, -, ex(15, -, 0))) ; X = ex(12, -, ex(6, -, ex(15, -, 0))) ; X = ex(6, +, ex(12, -, ex(15, -, 0))) ; X = ex(6, -, ex(12, -, ex(15, -, 0))) ; X = ex(ex(15, -, 0), +, ex(12, +, 6)) ; X = ex(12, +, ex(6, +, ex(15, -, 0))) ; X = ex(6, +, ex(12, +, ex(15, -, 0))) ; false. ?-