50 lines
890 B
Plaintext
50 lines
890 B
Plaintext
|
; tests that universal quantifiers in preconditions are correctly reduced
|
||
|
(define (domain test-normalization)
|
||
|
(:predicates
|
||
|
(test-predicate-0)
|
||
|
(test-predicate-1 ?x)
|
||
|
(test-predicate-2 ?x ?y))
|
||
|
|
||
|
; top-level “forall” statement
|
||
|
(:action test-action-1
|
||
|
:parameters
|
||
|
(?x)
|
||
|
:precondition
|
||
|
(forall
|
||
|
(?x ?y)
|
||
|
(test-predicate-2 ?x ?y))
|
||
|
:effect
|
||
|
(test-predicate-1 ?x))
|
||
|
|
||
|
; nested “forall” statement
|
||
|
(:action test-action-2
|
||
|
:parameters
|
||
|
(?x)
|
||
|
:precondition
|
||
|
(and
|
||
|
(and
|
||
|
(forall
|
||
|
(?x ?y)
|
||
|
(test-predicate-2 ?x ?y))
|
||
|
(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))
|
||
|
|
||
|
; “forall” statement in goal
|
||
|
(:goal
|
||
|
(and
|
||
|
(forall
|
||
|
(?x ?y)
|
||
|
(test-predicate-2 ?x ?y))
|
||
|
(test-predicate-0))))
|