;;; a three step plan works
(define (problem att_log0) 
  (:domain logistics)
;;  (:requirements :strips :equality :typing :conditional-effects :disjunctive-preconditions)			
  (:objects 	package1 - OBJ
		package2 - OBJ
		pgh_truck - TRUCK
		bos_truck - TRUCK
		phx_truck - TRUCK
		airplane1 - AIRPLANE
		bos_po - LOCATION
		pgh_po - LOCATION
		phx_po - LOCATION
		bos_airport - AIRPORT 
		pgh_airport - AIRPORT 
		phx_airport - AIRPORT
		pgh - CITY
		bos - CITY
 		phx - CITY
	)
 (:init 
	(oneof
	 (at_ol package1 pgh_po)
	 (at_ol package1 phx_po)
	 )
	
	(oneof
	 (at_ol package2 pgh_po)
	 (at_ol package2 phx_po)
	)

	(unknown (at_ol package1 pgh_po))
	(unknown (at_ol package1 phx_po))
	(unknown (at_ol package2 pgh_po) )
	(unknown (at_ol package2 phx_po))

;	(not (in_oa package1 airplane1))
;        (not (in_ot package1 bos_truck))
;        (not (in_ot package1 pgh_truck))
;        (not (in_ot package1 phx_truck))
;	(not (at_oa package1 pgh_airport))	
	;(not (at_oa package1 bos_airport))
;	(not (at_oa package1 phx_airport))
;;	(not (at_ol package1 bos_po))
;	(not (in_oa package2 airplane1))
;        (not (in_ot package2 bos_truck))
;        (not (in_ot package2 pgh_truck))
;        (not (in_ot package2 phx_truck))
	;;(not (at_oa package2 pgh_airport))	
	;(not (at_oa package2 bos_airport))
	;(not (at_oa package2 phx_airport))
	;(not (at_ol package2 bos_po))

 	 (at_aa airplane1 pgh_airport)
	;(not (at_aa airplane1 phx_airport))
	;(not (at_aa airplane1 bos_airport))

	 (at_tl bos_truck bos_po)
        ;(not (at_ta bos_truck bos_airport))
	;(not (at_tl bos_truck pgh_po))
	;(not (at_ta bos_truck pgh_airport))
	;(not (at_tl bos_truck phx_po))
	;(not (at_ta bos_truck phx_airport))

	 (at_tl pgh_truck pgh_po)
       ;(not (at_ta pgh_truck bos_airport))
       ; (not (at_tl pgh_truck bos_po))
       ; (not (at_ta pgh_truck pgh_airport))
       ; (not (at_tl pgh_truck phx_po))
       ; (not (at_ta pgh_truck phx_airport))

	 (at_tl phx_truck phx_po)
       ;(not (at_ta phx_truck bos_airport))
       ; (not (at_tl phx_truck bos_po))
       ;; (not (at_ta phx_truck pgh_airport))
        ;(not (at_tl phx_truck pgh_po))
        ;(not (at_ta phx_truck phx_airport))

	 (in_city_l bos_po bos)
	;(not (in_city_l bos_po pgh))
	;(not (in_city_l bos_po phx))

	 (in_city_a bos_airport bos)
	;(not (in_city_a bos_airport pgh))
	;(not (in_city_a bos_airport phx))

	 (in_city_l phx_po phx)
	;(not (in_city_l phx_po bos))
	;(not (in_city_l phx_po pgh))

	 (in_city_a phx_airport phx)
	;(not (in_city_a phx_airport bos))
	;(not (in_city_a phx_airport pgh))

	 (in_city_l pgh_po pgh)
	;(not (in_city_l pgh_po bos))
	;(not (in_city_l pgh_po phx))

	 (in_city_a pgh_airport pgh)
	;(not (in_city_a pgh_airport bos))
	;(not (in_city_a pgh_airport phx))

	 (in_city_t pgh_truck pgh)
	;(not (in_city_t pgh_truck bos))
	;(not (in_city_t pgh_truck phx))

	 (in_city_t bos_truck bos)
	;(not (in_city_t bos_truck pgh))
	;(not (in_city_t bos_truck phx))

	 (in_city_t phx_truck phx)
	;(not (in_city_t phx_truck pgh))
	;(not (in_city_t phx_truck bos))
);)
  (:goal;conformantgoal
	 (and 
	(at_oa package1 bos_airport)
	(at_oa package2 bos_airport)
	)	
  )
)
