$ pl Welcome to SWI-Prolog (Multi-threaded, Version 5.6.24) Copyright (c) 1990-2006 University of Amsterdam. SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. Please visit http://www.swi-prolog.org for details. For help, use ?- help(Topic). or ?- apropos(Word). ?- ['crypto.pro']. % combosets.pro compiled 0.00 sec, 7,448 bytes % crypto.pro compiled 0.01 sec, 10,496 bytes Yes ?- crypto(2,2,4,Solution). Solution = ex(2, +, 2) ; Solution = ex(2, *, 2) ; No ?- crypto(2,2,2,2,Solution). Solution = ex(2, -, ex(2, +, 2)) ; Solution = ex(2, /, ex(2, +, 2)) ; Solution = ex(2, -, ex(2, *, 2)) ; Solution = ex(2, /, ex(2, *, 2)) ; Solution = ex(2, +, ex(2, -, 2)) ; Solution = ex(2, -, ex(2, -, 2)) ; Solution = ex(2, +, ex(2, -, 2)) ; Solution = ex(2, -, ex(2, -, 2)) ; Solution = ex(2, *, ex(2, /, 2)) ; Solution = ex(2, /, ex(2, /, 2)) ; Solution = ex(2, *, ex(2, /, 2)) ; Solution = ex(2, /, ex(2, /, 2)) ; Solution = ex(2, -, ex(2, +, 2)) ; Solution = ex(2, /, ex(2, +, 2)) ; Solution = ex(2, -, ex(2, *, 2)) Yes ?- crypto(2,2,2,2,2,Solution). Solution = ex(2, +, ex(2, *, ex(2, -, 2))) ; Solution = ex(2, -, ex(2, *, ex(2, -, 2))) ; Solution = ex(2, +, ex(2, /, ex(2, -, 2))) ; Solution = ex(2, -, ex(2, /, ex(2, -, 2))) ; Solution = ex(2, +, ex(2, *, ex(2, -, 2))) ; Solution = ex(2, -, ex(2, *, ex(2, -, 2))) ; Solution = ex(2, +, ex(2, /, ex(2, -, 2))) ; Solution = ex(2, -, ex(2, /, ex(2, -, 2))) ; Solution = ex(2, +, ex(2, *, ex(2, -, 2))) ; Solution = ex(2, -, ex(2, *, ex(2, -, 2))) ; Solution = ex(2, +, ex(2, /, ex(2, -, 2))) ; Solution = ex(2, -, ex(2, /, ex(2, -, 2))) ; Solution = ex(2, +, ex(2, *, ex(2, -, 2))) Yes ?-