Welcome to SWI-Prolog (threaded, 64 bits, version 7.6.4) 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). ?- true. ?- loves(john, wine). true. ?- loves(mary, wine). true. ?- loves(john, X). X = wine. ?- loves(Y, wine). Y = john ; Y = mary. ?- loves(X, Y). X = john, Y = wine ; X = mary, Y = wine. ?- true. ?- loves(john, X). X = wine ; X = john ; X = mary ; false. ?- loves(X, Y). X = john, Y = wine ; X = mary, Y = wine ; X = Y, Y = john ; X = john, Y = mary ; false. ?- true. ?- add(z,z,z). true. ?- add(s(z),s(z),s(s(z))). true. ?- add(s(z),s(z), X). X = s(s(z)). ?- add(s(z),s(s(s(z))), X). X = s(s(s(s(z)))). ?- add(s(z), X, s(s(s(z)))). X = s(s(z)). ?- add(X, s(z), s(s(s(z)))). X = s(s(z)) ?- add(X, Y, s(s(s(z)))). X = z, Y = s(s(s(z))) ; X = s(z), Y = s(s(z)) ; X = s(s(z)), Y = s(z) ; X = s(s(s(z))), Y = z ; false. ?- true. ?- [1,2,3,4] = [1|[2|[3|[4|[]]]]]. true. ?- mem(2, [1,2,3,4]). true ; false. ?- true. ?- mem(2, [1,2,3,4]). true ; false. ?- mem(2, [1,2,3,2]). true ; false. ?- mem(2, [1,2,3,2]). true ; false. ?- mem(X, [1,2,3,4]). X = 1 ; false. ?- true. ?- mem(X, [1,2,3,4]). X = 1 ; X = 2 ; X = 3 ; X = 4 ; false. ?- mem(1, L). L = [1|_24] ; L = [_22, 1|_30] ; L = [_22, _28, 1|_36] ; L = [_22, _28, _34, 1|_42] ; L = [_22, _28, _34, _40, 1|_48] ; L = [_22, _28, _34, _40, _46, 1|_54] ; L = [_22, _28, _34, _40, _46, _52, 1|_60] ; L = [_22, _28, _34, _40, _46, _52, _58, 1|_66] ; L = [_22, _28, _34, _40, _46, _52, _58, _64, 1|...] ; L = [_22, _28, _34, _40, _46, _52, _58, _64, _70|...] ; L = [_22, _28, _34, _40, _46, _52, _58, _64, _70|...] ; L = [_22, _28, _34, _40, _46, _52, _58, _64, _70|...] ; L = [_22, _28, _34, _40, _46, _52, _58, _64, _70|...] ?- true. ?- true. ?-