% File 'turkeys' % Shooting Turkeys ("Nonmonotonic Causal Theories," Figure 5) :- sorts turkey. :- objects turkey1, turkey2 :: turkey. :- variables T :: turkey. :- constants loaded, alive(turkey) :: inertialFluent; target :: inertialFluent(turkey+none); load, shoot, aim(turkey) :: exogenousAction. aim(T) causes target=T. load causes loaded. load causes target=none. shoot causes -alive(T) if target=T. shoot causes -loaded. nonexecutable shoot if -loaded. noconcurrency. :- variables T1 :: turkey. :- query maxstep :: 5..6; 0: alive(T), target=none, -loaded; maxstep: -alive(T).