(define-theory planning (Unrestricted-Time diagrams meronymy))
(in-theory 'planning)
(DEFINE-RELATION CLOSES-AT (?A ?B) :DEF (PLANNING-RELATION ?A ?B)
:AXIOM-CONSTRAINTS
(AND (RANGE CLOSES-AT GENERIC-PLAN)
(DOMAIN CLOSES-AT GENERIC-PLAN)))
(DEFINE-RELATION EXIT-CONDITION (?A ?B) :DEF (POSTCONDITION ?A ?B))
(DEFINE-RELATION EXIT-CONDITION-OF (?A ?B) :IFF-DEF
(AND (= (INVERSE EXIT-CONDITION) EXIT-CONDITION-OF)
(SITUATION ?A)
(ABSTRACTION ?B))
:AXIOM-CONSTRAINTS
(AND (RANGE EXIT-CONDITION-OF ABSTRACTION)
(DOMAIN EXIT-CONDITION-OF SITUATION)))
(DEFINE-RELATION FIRST-PLAN (?A ?B) :IFF-DEF
(AND (= (INVERSE FIRST-PLAN-OF) FIRST-PLAN)
(GENERIC-PLAN ?A)
(GENERIC-PLAN ?B))
:CONSTRAINTS (AND (GENERIC-PLAN ?A) (GENERIC-PLAN ?B)) :AXIOM-CONSTRAINTS
(AND (RANGE FIRST-PLAN GENERIC-PLAN)
(DOMAIN FIRST-PLAN GENERIC-PLAN)))
(DEFINE-RELATION FIRST-PLAN-OF (?A ?B) :IFF-DEF
(AND (NOT (EXISTS ?W (AND (GENERIC-PLAN ?W) (PLAN-PREDECESSOR ?A ?W))))
(PLANNING-RELATION ?A ?B)
(GENERIC-PLAN ?A)
(GENERIC-PLAN ?B)))
(DEFINE-RELATION INVERSE-OF-PLANNING-RELATION (?A ?B) :IFF-DEF
(= (INVERSE PLANNING-RELATION) INVERSE-OF-PLANNING-RELATION))
(DEFINE-RELATION IS-CLOSING-OF (?A ?B) :IFF-DEF
(= (INVERSE CLOSES-AT) IS-CLOSING-OF))
(DEFINE-RELATION IS-OPENING-OF (?A ?B) :IFF-DEF
(= (INVERSE OPENS-AT) IS-OPENING-OF))
(DEFINE-RELATION IS-PLAN-SUBDIVISION (?A ?B))
(DEFINE-FUNCTION ITERATED-FOR (?A) :-> ?B :DEF (NUMERIC-VALUE ?A ?B)
:AXIOM-DEF (FUNCTION ITERATED-FOR) :AXIOM-CONSTRAINTS
(RANGE ITERATED-FOR INTEGER))
(DEFINE-RELATION ITERATION-VALUE-OF (?A ?B) :IFF-DEF
(= (INVERSE ITERATED-FOR) ITERATION-VALUE-OF))
(DEFINE-RELATION LAST-PLAN (?A ?B) :IFF-DEF
(AND (= (INVERSE LAST-PLAN-OF) LAST-PLAN)
(GENERIC-PLAN ?A)
(GENERIC-PLAN ?B))
:AXIOM-CONSTRAINTS
(AND (RANGE LAST-PLAN GENERIC-PLAN)
(DOMAIN LAST-PLAN GENERIC-PLAN)))
(DEFINE-RELATION LAST-PLAN-OF (?A ?B) :DEF
(AND (PLANNING-RELATION ?A ?B) (GENERIC-PLAN ?A) (GENERIC-PLAN ?B))
:CONSTRAINTS
(NOT (EXISTS ?W (AND (GENERIC-PLAN ?W) (PLAN-SUCCESSOR ?A ?W)))))
(DEFINE-RELATION OPENS-AT (?A ?B) :DEF (PLANNING-RELATION ?A ?B)
:AXIOM-CONSTRAINTS
(AND (RANGE OPENS-AT GENERIC-PLAN)
(DOMAIN OPENS-AT GENERIC-PLAN)))
(DEFINE-RELATION PLAN-DIRECT-PREDECESSOR (?A ?B) :IFF-DEF
(AND (= (INVERSE PLAN-DIRECT-SUCCESSOR) PLAN-DIRECT-PREDECESSOR)
(GENERIC-PLAN ?A)
(GENERIC-PLAN ?B))
:AXIOM-CONSTRAINTS
(AND (RANGE PLAN-DIRECT-PREDECESSOR GENERIC-PLAN)
(DOMAIN PLAN-DIRECT-PREDECESSOR GENERIC-PLAN)))
(DEFINE-RELATION PLAN-DIRECT-SUCCESSOR (?A ?B) :DEF
(PLAN-SUCCESSOR ?A ?B))
(DEFINE-RELATION PLAN-PREDECESSOR (?A ?B)
"To be understood as 'plan part x
has predecessor y'. This is transitive."
:IFF-DEF
(AND (= (INVERSE PLAN-SUCCESSOR) PLAN-PREDECESSOR)
(GENERIC-PLAN ?A)
(GENERIC-PLAN ?B))
:CONSTRAINTS (AND (GENERIC-PLAN ?A) (GENERIC-PLAN ?B)) :AXIOM-CONSTRAINTS
(AND (RANGE PLAN-PREDECESSOR GENERIC-PLAN)
(DOMAIN PLAN-PREDECESSOR GENERIC-PLAN)))
(DEFINE-RELATION PLAN-SUBDIVISION (?A ?B) :DEF (BINARY-TUPLE ?A ?B))
(DEFINE-RELATION PLAN-SUCCESSOR (?A ?B)
"To be understood as 'plan part x
has successor y'. This is transitive."
:DEF (AND (PLANNING-RELATION ?A ?B) (GENERIC-PLAN ?A) (GENERIC-PLAN ?B))
:CONSTRAINTS (AND (GENERIC-PLAN ?A) (GENERIC-PLAN ?B)) :AXIOM-CONSTRAINTS
(AND (RANGE PLAN-SUCCESSOR GENERIC-PLAN)
(DOMAIN PLAN-SUCCESSOR GENERIC-PLAN)))
(DEFINE-RELATION PLANNING-PROPERTY (?A ?B) :DEF
(AND (TYPICALITY-PROPERTY ?A ?B) (GENERIC-PLAN ?A)))
(DEFINE-RELATION PLANNING-RELATION (?A ?B) :DEF
(STRUCTURING-RELATION ?A ?B))
(DEFINE-RELATION POSTCONDITION (?A ?B) :DEF
(AND (PLANNING-RELATION ?A ?B)
(EXISTS (?C) (AND (METHOD-OF ?A ?C) (OUTCOME ?C ?B)))
(SITUATION ?B)))
(DEFINE-RELATION POSTCONDITION-OF (?A ?B) :IFF-DEF
(AND (= (INVERSE POSTCONDITION) POSTCONDITION-OF)
(SITUATION ?A)
(ABSTRACTION ?B))
:AXIOM-CONSTRAINTS
(AND (RANGE POSTCONDITION-OF ABSTRACTION)
(DOMAIN POSTCONDITION-OF SITUATION)))
(DEFINE-RELATION PRECONDITION (?A ?B) :DEF
(AND (PLANNING-RELATION ?A ?B)
(EXISTS (?C) (AND (METHOD-OF ?A ?C) (FOLLOWS ?C ?B)))
(GENERIC-PLAN ?A)
(SITUATION ?B)))
(DEFINE-RELATION PRECONDITION-OF (?A ?B) :IFF-DEF
(AND (= (INVERSE PRECONDITION) PRECONDITION-OF)
(SITUATION ?A)
(GENERIC-PLAN ?B))
:AXIOM-CONSTRAINTS
(AND (RANGE PRECONDITION-OF GENERIC-PLAN)
(DOMAIN PRECONDITION-OF SITUATION)))
(DEFINE-FUNCTION REPETITION-INTERVAL (?A) :-> ?B :DEF
(DURATION-VALUE ?A ?B))
(DEFINE-RELATION REPETITION-INTERVAL-OF (?A ?B) :IFF-DEF
(AND (= (INVERSE REPETITION-INTERVAL) REPETITION-INTERVAL-OF)
(NUMBER ?A))
:AXIOM-CONSTRAINTS
(DOMAIN REPETITION-INTERVAL-OF NUMBER))
(DEFINE-RELATION SIBLING-PLAN (?A ?B)
"Two plans contained in the same plan." :DEF
(AND (EXISTS (?C) (AND (PART-OF ?A ?C) (PART ?C ?B)))
(ENTITY ?A)
(ENTITY ?B)
(PLANNING-RELATION ?A ?B)
(GENERIC-PLAN ?A)
(GENERIC-PLAN ?B))
:CONSTRAINTS (AND (GENERIC-PLAN ?A) (GENERIC-PLAN ?B)) :AXIOM-CONSTRAINTS
(AND (RANGE SIBLING-PLAN GENERIC-PLAN)
(DOMAIN SIBLING-PLAN GENERIC-PLAN)))
(DEFINE-RELATION _ACCEPTED (?A ?B) :DEF (PLANNING-PROPERTY ?A ?B))
(DEFINE-RELATION _CONSIDERED (?A ?B) :DEF (PLANNING-PROPERTY ?A ?B))
(DEFINE-RELATION _POSSIBLE (?A ?B) :DEF (PLANNING-PROPERTY ?A ?B))
(DEFINE-RELATION _REJECTED (?A ?B) :DEF (PLANNING-PROPERTY ?A ?B))
(DEFINE-CLASS ALTERNATE-PLAN (?SELF)
"A case plan branched to exactly 2 plans not executable in
parallel."
:DEF
(AND (CASE-PLAN ?SELF)
(VALUE-CARDINALITY ?SELF PLAN-DIRECT-SUCCESSOR 2)))
(DEFINE-CLASS ANY-ORDER-PLAN (?SELF)
:DEF
(AND (CONCURRENT-PLAN ?SELF)
(EXISTS (?A)
(AND (PLAN-DIRECT-SUCCESSOR ?SELF ?A) (SEQUENTIAL-PLAN ?A)))))
(DEFINE-CLASS BRANCHING-PLAN (?SELF)
"A plan that subdivides in a set of plans." :DEF
(AND (ELEMENTARY-PLAN ?SELF)
(MINIMUM-SLOT-CARDINALITY ?SELF PLAN-DIRECT-SUCCESSOR 2))
:CONSTRAINTS
(AND (EXISTS (?A) (AND (REPRESENTED-BY ?SELF ?A) (FORK-NODE ?A)))
(EXISTS (?B) (AND (METHOD-OF ?SELF ?B) (PLANNING-STAGE ?B)))))
(DEFINE-CLASS CASE-PLAN (?SELF)
"A plan branched to a set of plans not executable in
parallel."
:DEF
(AND (BRANCHING-PLAN ?SELF)
(MINIMUM-SLOT-CARDINALITY ?SELF PLAN-DIRECT-SUCCESSOR 2))
:CONSTRAINTS
(AND (EXISTS (?A) (AND (METHOD-OF ?SELF ?A) (CASE-STAGE ?A)))
(EXISTS (?B) (AND (REPRESENTED-BY ?SELF ?B) (FORK-NODE ?B)))))
(DEFINE-CLASS COMPLEX-PLAN (?SELF)
:IFF-DEF
(AND (GENERIC-PLAN ?SELF) (MINIMUM-SLOT-CARDINALITY ?SELF PART 2))
:AXIOM-DEF
(SUBCLASS-PARTITION COMPLEX-PLAN
(SETOF SEQUENTIAL-PLAN CYCLICAL-PLAN)))
(DEFINE-CLASS CONCURRENT-PLAN (?SELF)
"A branching plan to a set of plans executable concurrently." :DEF
(AND (BRANCHING-PLAN ?SELF)
(EXISTS (?A) (AND (METHOD-OF ?SELF ?A) (CONCURRENT-STAGE ?A)))))
(DEFINE-CLASS CYCLE-FOR (?SELF)
:DEF
(AND (CYCLICAL-PLAN ?SELF)
(VALUE-CARDINALITY ?SELF ITERATED-FOR 1)
(VALUE-TYPE ?SELF ITERATED-FOR INTEGER))
:CONSTRAINTS (VALUE-TYPE ?SELF REPETITION-INTERVAL NUMBER))
(DEFINE-CLASS CYCLE-UNTIL (?SELF)
"A cyclical plan which iterates until a certain condition
becomes true. It can be repeated after a certain repetition interval."
:DEF
(AND (CYCLICAL-PLAN ?SELF)
(EXISTS (?A) (AND (EXIT-CONDITION ?SELF ?A) (SITUATION ?A))))
:CONSTRAINTS (VALUE-TYPE ?SELF REPETITION-INTERVAL NUMBER))
(DEFINE-CLASS CYCLICAL-PLAN (?SELF)
"A plan containing at least a cycle." :DEF
(AND (COMPLEX-PLAN ?SELF)
(EXISTS (?A)
(AND (REPRESENTED-BY ?SELF ?A)
(AND (FLOW-CHART ?A)
(EXISTS (?B)
(AND (FIRST-NODE ?A ?B) (CYCLE-NODE ?B)))
(FORALL (?B ?C)
(=> (AND (FIRST-NODE ?A ?B) (FIRST-NODE ?A ?C))
(= ?B ?C)))))))
:CONSTRAINTS (EXISTS (?D) (AND (METHOD-OF ?SELF ?D) (ACT-STAGE ?D)))
:AXIOM-DEF (SUBCLASS-PARTITION CYCLICAL-PLAN (SETOF CYCLE-UNTIL CYCLE-FOR)))
(DEFINE-CLASS ELEMENTARY-PLAN (?SELF)
"A plan that does not contain compacted plans (ie, subplans
represented by a simple node that can be expanded into a flow-chart)."
:DEF (AND (GENERIC-PLAN ?SELF) (VALUE-TYPE ?SELF PART INCOHERENT)))
(DEFINE-CLASS GENERIC-PLAN (?SELF)
"A generic plan is a script that contains the
method for executing or performing a procedure or a stage of a procedure."
:DEF
(AND (SCRIPT ?SELF)
(FORALL (?A)
(=> (METHOD-OF ?SELF ?A) (OR (PROCEDURE ?A) (STAGE ?A)))))
:CONSTRAINTS
(AND (EXISTS (?B) (AND (REPRESENTED-BY ?SELF ?B) (DOCUMENT ?B)))
(EXISTS (?C) (AND (PART ?SELF ?C) (GENERIC-PLAN ?C)))
(VALUE-TYPE ?SELF PART-OF GENERIC-PLAN)
(VALUE-TYPE ?SELF SERIAL-VALUE SERIAL-VALUE-FILLER)
(VALUE-TYPE ?SELF TITLE SYMBOLIC-STRING)
(VALUE-TYPE ?SELF PRECONDITION SITUATION)
(VALUE-TYPE ?SELF AUTHORED-BY PLAN-AUTHOR)
(VALUE-TYPE ?SELF DURATION-VALUE NUMBER)
(VALUE-TYPE ?SELF DESCRIPTION SYMBOLIC-STRING)
(VALUE-TYPE ?SELF POSTCONDITION SITUATION))
:AXIOM-DEF
(SUBCLASS-PARTITION GENERIC-PLAN
(SETOF ELEMENTARY-PLAN COMPLEX-PLAN SYNCHRO-PLAN)))
(DEFINE-CLASS PARALLEL-PLAN (?SELF)
:DEF
(AND (CONCURRENT-PLAN ?SELF)
(MINIMUM-SLOT-CARDINALITY ?SELF PLAN-DIRECT-SUCCESSOR 2))
:CONSTRAINTS
(EXISTS (?Y ?Z)
(AND (GENERIC-PLAN ?Y)
(GENERIC-PLAN ?Z)
(CO-EXIST ?Y ?Z)
(PLAN-DIRECT-SUCCESSOR ?SELF ?Y)
(PLAN-DIRECT-SUCCESSOR ?SELF ?Z))))
(DEFINE-CLASS PARTLY-ANY-ORDER-PLAN (?SELF)
:DEF
(AND (PARTLY-CONCURRENT-PLAN ?SELF)
(EXISTS (?A)
(AND (PLAN-DIRECT-SUCCESSOR ?SELF ?A) (SEQUENTIAL-PLAN ?A)))))
(DEFINE-CLASS PARTLY-CONCURRENT-PLAN (?SELF)
"A branching plan to a set of plans, some of which are executable
concurrently."
:DEF
(AND (BRANCHING-PLAN ?SELF)
(EXISTS (?A) (AND (METHOD-OF ?SELF ?A) (PARTLY-CONCURRENT-STAGE ?A)))))
(DEFINE-CLASS PARTLY-PARALLEL-PLAN (?SELF)
:DEF
(AND (PARTLY-CONCURRENT-PLAN ?SELF)
(MINIMUM-SLOT-CARDINALITY ?SELF PLAN-DIRECT-SUCCESSOR 2))
:CONSTRAINTS
(EXISTS (?Y ?Z)
(AND (GENERIC-PLAN ?Y)
(GENERIC-PLAN ?Z)
(CO-EXIST ?Y ?Z)
(PLAN-DIRECT-SUCCESSOR ?SELF ?Y)
(PLAN-DIRECT-SUCCESSOR ?SELF ?Z))))
(DEFINE-CLASS PLAN-AUTHOR (?SELF)
:IFF-DEF
(AND (THING ?SELF)
(OR (PERSON ?SELF) (ORGANIZATION ?SELF))
(EXISTS (?A) (AND (AUTHORS ?SELF ?A) (GENERIC-PLAN ?A)))))
(DEFINE-CLASS SEQUENTIAL-PLAN (?SELF)
"A plan that does not contain branchings
nor synchronizations, nor cycles."
:DEF
(AND (COMPLEX-PLAN ?SELF)
(VALUE-TYPE ?SELF PART INCOHERENT)
(VALUE-TYPE ?SELF PART INCOHERENT)
(VALUE-TYPE ?SELF PART INCOHERENT))
:CONSTRAINTS
(AND (EXISTS (?A)
(AND (REPRESENTED-BY ?SELF ?A)
(AND (FLOW-CHART ?A)
(FORALL (?B)
(=> (PART ?A ?B) (SIMPLE-NODE ?B))))))
(EXISTS (?C) (AND (METHOD-OF ?SELF ?C) (ACT-STAGE ?C)))))
(DEFINE-CLASS SYNCHRO-PLAN (?SELF)
:DEF
(AND (GENERIC-PLAN ?SELF)
(MINIMUM-SLOT-CARDINALITY ?SELF PLAN-DIRECT-PREDECESSOR 2)
(EXISTS (?A)
(AND (PLAN-PREDECESSOR ?SELF ?A)
(OR (CONCURRENT-PLAN ?A) (PARTLY-CONCURRENT-PLAN ?A)))))
:CONSTRAINTS
(AND (EXISTS (?B) (AND (REPRESENTED-BY ?SELF ?B) (JOIN-NODE ?B)))
(EXISTS (?C) (AND (METHOD-OF ?SELF ?C) (PLANNING-STAGE ?C)))))
(DEFINE-CLASS THE-FIRST-PLAN (?SELF)
:IFF-DEF
(AND (GENERIC-PLAN ?SELF)
(MINIMUM-SLOT-CARDINALITY ?SELF PLAN-SUCCESSOR 1)
(VALUE-TYPE ?SELF PLAN-PREDECESSOR INCOHERENT))
:CONSTRAINTS (EXISTS (?A) (AND (REPRESENTED-BY ?SELF ?A) (THE-FIRST-NODE ?A))))
(DEFINE-CLASS THE-LAST-PLAN (?SELF)
:IFF-DEF
(AND (GENERIC-PLAN ?SELF)
(MINIMUM-SLOT-CARDINALITY ?SELF PLAN-PREDECESSOR 1)
(VALUE-TYPE ?SELF PLAN-SUCCESSOR INCOHERENT))
:CONSTRAINTS (EXISTS (?A) (AND (REPRESENTED-BY ?SELF ?A) (THE-LAST-NODE ?A))))