Added normalization tests for “forall” statements.

These tests ensure that universal quantifiers are correctly reduced to
negated existential quantifiers over the negated argument via derived
predicates in preconditions (nested and not) and goal descriptions.
This commit is contained in:
2017-11-15 17:26:56 +01:00
parent 0cf84dd5ca
commit 9e9040cac0
2 changed files with 115 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
; 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))))