1%Copyright 2016, Anderson Green 2 3:- set_prolog_flag(double_quotes,chars). 4:- initialization(main). 5%If X is an animal, then X is a bird or a mammal, and vice-versa. 6:- use_module(library(chr)). 7 8:- chr_constraint type/2. 9 10species(X,X1),species(X,X2) <=> X1 = X2. 11 12animal(X) <=> 13 (mammal(X);bird(X)), 14 (male(X);female(X)). 15 16male(X),female(X) ==> false. 17 18bird(X) <=> species(X,pigeon);species(X,parrot). 19 20mammal(X) <=> species(X,dog);species(X,cat);species(X,bull). 21 22species(X,bull) ==> male(X). 23 24main :- species(X,bull), age(X,20), age(X,13), writeln(X)