|
1 | 1 | (define (domain compiler) |
2 | 2 |
|
3 | | - (:requirements :strips :typing :negative-preconditions) |
| 3 | + (:requirements :strips :typing :negative-preconditions :universal-preconditions :disjunctive-preconditions) |
4 | 4 |
|
5 | 5 | (:types |
| 6 | + id - object |
6 | 7 | operation - object |
7 | 8 | assignment - object |
8 | 9 | variable_name - object |
9 | 10 | variable_value - object |
10 | 11 | ) |
11 | 12 |
|
12 | 13 | (:predicates |
| 14 | + (assignment_id ?assignment - assignment ?id - id) |
| 15 | + (operation_id ?operation - operation ?id - id) |
| 16 | + (dependency_tree ?parent - id ?child - id) |
| 17 | + (executed_instruction ?id - id) |
| 18 | + |
13 | 19 | (variable_info ?var - variable_name ?value - variable_value ?id - assignment) |
14 | 20 | (executed_assignment ?var - variable_name ?value - variable_value ?id - assignment) |
15 | 21 | (executed_operation ?id - operation) |
|
21 | 27 | ?var - variable_name |
22 | 28 | ?value - variable_value |
23 | 29 | ?id - assignment |
| 30 | + ?instruction_id - id |
24 | 31 | ) |
25 | 32 | :precondition (and |
| 33 | + (assignment_id ?id ?instruction_id) |
26 | 34 | (not (executed_assignment ?var ?value ?id)) |
| 35 | + (forall (?parent - id) |
| 36 | + (or |
| 37 | + (not (dependency_tree ?parent ?instruction_id)) |
| 38 | + (executed_instruction ?parent) |
| 39 | + ) |
| 40 | + ) |
27 | 41 | ) |
28 | 42 | :effect (and |
29 | 43 | (variable_info ?var ?value ?id) |
| 44 | + (executed_instruction ?instruction_id) |
30 | 45 | (executed_assignment ?var ?value ?id) |
31 | 46 | ) |
32 | 47 | ) |
|
41 | 56 | ?idB - assignment |
42 | 57 | ?idC - assignment |
43 | 58 | ?operation_id - operation |
| 59 | + ?instruction_id - id |
44 | 60 | ) |
45 | 61 | :precondition (and |
| 62 | + (operation_id ?operation_id ?instruction_id) |
| 63 | + (forall (?parent - id) |
| 64 | + (or |
| 65 | + (not (dependency_tree ?parent ?instruction_id)) |
| 66 | + (executed_instruction ?parent) |
| 67 | + ) |
| 68 | + ) |
46 | 69 | (not (executed_operation ?operation_id)) |
47 | 70 | (variable_info ?varA ?valueA ?idA) |
48 | 71 | (variable_info ?varB ?valueB ?idB) |
|
51 | 74 | (executed_assignment ?varB ?valueB ?idB) |
52 | 75 | ) |
53 | 76 | :effect (and |
| 77 | + (executed_instruction ?instruction_id) |
54 | 78 | (executed_operation ?operation_id) |
55 | 79 | (executed_binary_operation ?idA ?idB ?operation_id ?idC) |
56 | 80 | ) |
|
0 commit comments