1type_restriction(member(A,B),[atomic(A),list(B)]). 2type_restriction(components(A,B,C),[list(A),atomic(B),list(C)]). 3 4list([]). 5list([A|B]):- atomic(A),list(B). 6 7 8components([X|Y],X,Y). 9 10 11ex(member(e,[e,o,z]),+). 12ex(member(o,[o,z]),+). 13ex(member(o,[e,o,z]),+). 14ex(member(z,[z]),+). 15ex(member(z,[o,z]),+). 16ex(member(z,[e,o,z]),+). 17 18 19 20ex(member(e,e),-). 21ex(member(e,o),-). 22ex(member(e,z),-). 23ex(member(e,[]),-). 24ex(member(e,[z]),-). 25ex(member(e,[o,z]),-). 26ex(member(o,e),-). 27ex(member(o,o),-). 28ex(member(o,z),-). 29ex(member(o,[]),-). 30ex(member(o,[z]),-). 31ex(member(z,e),-). 32ex(member(z,o),-). 33ex(member(z,z),-). 34ex(member(z,[]),-). 35ex(member([],e),-). 36ex(member([],o),-). 37ex(member([],z),-). 38ex(member([],[]),-). 39ex(member([],[z]),-). 40ex(member([],[o,z]),-). 41ex(member([],[e,o,z]),-). 42ex(member([z],e),-). 43ex(member([z],o),-). 44ex(member([z],z),-). 45ex(member([z],[]),-). 46ex(member([z],[z]),-). 47ex(member([z],[o,z]),-). 48ex(member([z],[e,o,z]),-). 49ex(member([o,z],e),-). 50ex(member([o,z],o),-). 51ex(member([o,z],z),-). 52ex(member([o,z],[]),-). 53ex(member([o,z],[z]),-). 54ex(member([o,z],[o,z]),-). 55ex(member([o,z],[e,o,z]),-). 56ex(member([e,o,z],e),-). 57ex(member([e,o,z],o),-). 58ex(member([e,o,z],z),-). 59ex(member([e,o,z],[]),-). 60ex(member([e,o,z],[z]),-). 61ex(member([e,o,z],[o,z]),-). 62ex(member([e,o,z],[e,o,z]),-)