(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))))

This Lisp-to-HTML translation was brought to you by
François Gerbaux and Tom Gruber