50 lines
908 B
Plaintext
50 lines
908 B
Plaintext
|
; tests that “imply” statements in preconditions are correctly reduced
|
||
|
(define (domain test-normalization)
|
||
|
(:predicates
|
||
|
(test-predicate-0)
|
||
|
(test-predicate-1 ?x)
|
||
|
(test-predicate-2 ?x ?y))
|
||
|
|
||
|
; top-level “imply” statement
|
||
|
(:action test-action-1
|
||
|
:parameters
|
||
|
(?x)
|
||
|
:precondition
|
||
|
(imply
|
||
|
(test-predicate-0)
|
||
|
(test-predicate-1 ?x))
|
||
|
:effect
|
||
|
(test-predicate-1 ?x))
|
||
|
|
||
|
; nested “imply” statement
|
||
|
(:action test-action-2
|
||
|
:parameters
|
||
|
(?x)
|
||
|
:precondition
|
||
|
(and
|
||
|
(and
|
||
|
(imply
|
||
|
(test-predicate-0)
|
||
|
(test-predicate-1 ?x))
|
||
|
(test-predicate-0))
|
||
|
(test-predicate-0))
|
||
|
:effect
|
||
|
(test-predicate-1 ?x))
|
||
|
)
|
||
|
|
||
|
(define (problem test-normalization)
|
||
|
(:domain test-normalization)
|
||
|
|
||
|
(:objects a b c)
|
||
|
|
||
|
(:init
|
||
|
(test-predicate-0))
|
||
|
|
||
|
; “imply” statement in goal
|
||
|
(:goal
|
||
|
(and
|
||
|
(imply
|
||
|
(test-predicate-0)
|
||
|
(test-predicate-1 a))
|
||
|
(test-predicate-0))))
|