
Extension Name: act_occ.th
Primitive Lexicon:
Definitional Extensions Required by this Extension: None

(forall (?o1 ?o2) (if (subactivity_occurrence ?o1 ?o2) (and (activity_occurrence ?o1) (activity_occurrence ?o2))))Axiom 1 There exists an occurrence of an activity ?a for every branch of an activity tree for ?a. All atomic subactivity occurrences on the branch are subactivity occurrences of the occurrence of ?a.
(forall (?a ?s1 ?s2) (if (min_precedes ?s1 ?s2 ?a) (exists (?occ) (and (occurrence_of ?occ ?a) (subactivity_occurrence ?s1 ?occ) (subactivity_occurrence ?s2 ?occ)))))Axiom 2 There exists an occurrence of an activity ?a for every branch of an activity tree for ?a. All root subactivity occurrences on the branch are subactivity occurrences of the occurrence of ?a.
(forall (?a ?s) (if (root ?s ?a) (exists (?occ) (and (occurrence_of ?occ ?a) (subactivity_occurrence ?s ?occ)))))Axiom 3 Every occurrence of a complex activity a contains an atomic subactivity occurrence that is the root of an activity tree for a.
(forall (?occ ?a)
(if (and (occurrence_of ?occ ?a)
(not (atomic ?a)))
(exists (?s)
(and (root ?s ?a)
(subactivity_occurrence ?s ?occ)))))
Axiom 4
Distinct occurrences of an activity correspond to distinct branches of an activity tree.
(forall (?a ?s1 ?occ1 ?occ2) (if (and (occurrence_of ?occ1 ?a) (occurrence_of ?occ2 ?a) (not (atomic ?a)) (not (= ?occ1 ?occ2)) (arboreal ?s1) (subactivity_occurrence ?s1 ?occ1) (subactivity_occurrence ?s1 ?occ2)) (exists (?s2) (and (min_precedes ?s1 ?s2 ?a) (subactivity_occurrence ?s2 ?occ1) (not (subactivity_occurrence ?s2 ?occ2))))))Axiom 5 All atomic subactivity occurrences of a complex activity occurrence are elements of the same branch of the activity tree.
(forall (?a ?occ ?s1 ?s2) (if (and (occurrence_of ?occ ?a) (not (atomic ?a)) (arboreal ?s1) (arboreal ?s2) (subactivity_occurrence ?s1 ?occ) (subactivity_occurrence ?s2 ?occ)) (or (min_precedes ?s1 ?s2 ?a) (min_precedes ?s2 ?s1 ?a) (= ?s1 ?s2))))Axiom 6 All elements of the same branch of an activity tree are atomic subactivity occurrences of the same activity occurrences.
(forall (?a ?s1 ?s2 ?occ) (if (and (min_precedes ?s1 ?s2 ?a) (subactivity_occurrence ?s2 ?occ)) (subactivity_occurrence ?s1 ?occ)))Axiom 7 The subactivity_occurrence relation preserves the subactivity relation.
(forall (?a1 ?a2 ?occ1 ?occ2) (if (and (occurrence_of ?occ1 ?a1) (occurrence_of ?occ2 ?a2) (subactivity_occurrence ?occ1 ?occ2)) (subactivity ?a1 ?a2)))Axiom 8 The subactivity_occurrence relation is transitive.
(forall (?occ1 ?occ2 ?occ3)
(if (and (subactivity_occurrence ?occ1 ?occ2)
(subactivity_occurrence ?occ2 ?occ3))
(subactivity_occurrence ?occ1 ?occ3)))
Axiom 9
Occurrences of subactivities are subactivity occurrences if the
occurrences satisfy branch containment.
(forall (?a1 ?a2 ?occ1 ?occ2)
(if (and (occurrence_of ?occ1 ?a1)
(occurrence_of ?occ2 ?a2)
(subactivity ?a1 ?a2)
(not (subactivity_occurrence ?occ1 ?occ2)))
(exists (?s)
(and (subactivity_occurrence ?s ?occ2)
(not (subactivity_occurrence ?s ?occ1))))))
Axiom 10
The beginof timepoint for a complex activity occurrence is
equal to the beginof timepoint of its root occurrence.
(forall (?occ) (if (activity_occurrence ?occ) (= (beginof ?occ) (beginof (root_occ ?occ)))))Axiom 11 The endof timepoint for a complex activity occurrence is equal to the endof timepoint of its leaf occurrence.
(forall (?s ?occ) (if (leaf_occ ?s ?occ) (= (endof ?occ) (endof ?s))))Axiom 12 The mono relation is a branch homomorphism.
(forall (?s1 ?s2 ?a)
(if (mono ?s1 ?s2 ?a)
(hom ?s1 ?s2 ?a)))
Axiom 13
If an atomic subactivity occurrence is mapped in a branch homomorphism,
then there exists another atomic subactivity occurrence that is mono with it.
(forall (?s1 ?s2 ?a)
(if (and (hom ?s1 ?s2 ?a)
(not (mono ?s1 ?s2 ?a)))
(exists (?s3)
(or (and (min_precedes ?s3 ?s2 ?a)
(mono ?s1 ?s3 ?a))
(and (min_precedes ?s3 ?s1 ?a)
(mono ?s2 ?s3 ?a))))))
Axiom 14
The mono relation is restricted to one-to-one homomorphisms between different
branches of the activity tree.
(forall (?s1 ?s2 ?s3 ?a)
(if (and (mono ?s1 ?s2 ?a)
(mono ?s3 ?s2 ?a))
(not (or (min_precedes ?s1 ?s3 ?a)
(min_precedes ?s3 ?s1 ?a)))))
Axiom 15
The mono relation is symmetric on activity occurrences.
(forall (?s1 ?s2 ?a)
(if (mono ?s1 ?s2 ?a)
(mono ?s2 ?s1 ?a)))
Axiom 16
The mono relation is transitive on activity occurrences.
(forall (?s1 ?s2 ?s3 ?a)
(if (and (mono ?s1 ?s2 ?a)
(mono ?s2 ?s3 ?a))
(mono ?s1 ?s3 ?a)))
(forall (?s1 ?s2 ?a) (iff (iso_occ ?s1 ?s2 ?a)
(exists (?a1 ?a2 ?a3)
(and (atomic ?a1)
(atomic ?a2)
(atomic ?a3)
(subactivity ?a1 ?a)
(occurrence_of ?s1 (conc ?a1 ?a2))
(occurrence_of ?s2 (conc ?a1 ?a3))))))
Definition 2
For every two occurrences of the same activity on different branches of an
activity tree, there exist homomorphic occurrences on those branches.
(forall (?s1 ?s2 ?a) (iff (hom ?s1 ?s2 ?a) (exists (?occ1 ?occ2) (and (iso_occ ?s1 ?s2 ?a) (not (min_precedes ?s1 ?s2 ?a)) (not (min_precedes ?s2 ?s1 ?a)) (subactivity_occurrence ?s1 ?occ1) (subactivity_occurrence ?s2 ?occ2) (occurrence_of ?occ1 ?a) (occurrence_of ?occ2 ?a)))))Definition 3 An occurrence ?occ1 is the root occurrence of an occurrence of ?a if and only if it is a subactivity occurrence and it is the root of an activity tree for ?a.
(forall (?s ?occ)
(if (and (activity_occurrence ?s)
(activity_occurrence ?occ))
(iff (= ?s (root_occ ?occ))
(exists (?a)
(and (occurrence_of ?occ ?a)
(subactivity_occurrence ?s ?occ)
(root ?s ?a))))))
Definition 4
An occurrence ?occ1 is the leaf occurrence of an occurrence of ?a if and only if
it is a subactivity occurrence and it is the leaf of an activity tree for ?a.
(forall (?s ?occ) (iff (leaf_occ ?s ?occ) (exists (?a) (and (occurrence_of ?occ ?a) (subactivity_occurrence ?s ?occ) (leaf ?s ?a)))))Definition 5 Two complex activity occurrences are in the same grove iff they are occurrences of the same activity and their root occurrences are siblings.
(forall (?occ1 ?occ2) (iff (same_grove ?occ1 ?occ2)
(exists (?a)
(and (occurrence_of ?occ1 ?a)
(occurrence_of ?occ2 ?a)
(or (and (initial (root_occ ?occ1))
(initial (root_occ ?occ2)))
(exists (?s4 ?a1 ?a2)
(and (= (root_occ ?occ1) (successor ?a1 ?s4))
(= (root_occ ?occ2) (successor ?a2 ?s4)))))))))