% File 'zoo-test1' :- sorts animal >> (elephant; horse; dog). :- variables SP :: species; E :: elephant; HR :: horse; D :: dog. :- objects elephantSpecies, horseSpecies, dogSpecies :: species. caused sp(E)=elephantSpecies. constraint sp(ANML)=elephantSpecies ->> [\/E | ANML=E]. caused sp(HR)=horseSpecies. constraint sp(ANML)=horseSpecies ->> [\/HR | ANML=HR]. caused sp(D)=dogSpecies. constraint sp(ANML)=dogSpecies ->> [\/D | ANML=D]. caused -largeSpecies(dogSpecies). :- objects homer :: human; jumbo :: elephant. % The gate is closed, and Homer, an adult human, is in position 6. % His goal is to mount Jumbo, an adult elephant, which is in % position 3 and is not going to move around. How many steps are % required to achieve this goal? :- sorts stepnum. :- variables T :: stepnum. :- objects 0..10 :: stepnum. :- query maxstep :: 3..4; 0: -opened(gateAO), pos(homer)=6; maxstep: mounted(homer,jumbo); T=> (T: pos(jumbo)=3).