Section: Scientific Foundations
Logics for expressing and formalizing properties of concurrent systems
In Comète we are interested in verifying whether a given process satisfies certain properties. These properties are often expressed in some logical formalism.
Hennesy-Milner's modal logic.
A way of expressing process specifications is by using a process logic. One such a logic is the Hennesy-Milner's modal logic. The discriminating power of this logic with respect to a finite processes (i.e., recursion-free processes) coincides with strong bisimilarity (see  ). That is, two finite processes are strongly bisimilar if and only if they satisfy the same formulas in the Hennessy-Milner's logic.
Hennesy-Milner's logic can express local properties such as ``an action must happen next'' but it cannot express long-term properties such as ``an action eventually happens''. This kind of property, which falls into the category of liveness properties (expressing that ``something good eventually happens''), and also safety properties (expressing that ``something bad never happens'') have been found to be useful for reasoning about concurrent systems. The modal logics attempting to capture properties of the kind above are often referred to as temporal-logics .
Temporal logics were introduced into computer science by Pnueli  and thereafter proven to be a good basis for specification as well as for (automatic and machine-assisted) reasoning about concurrent systems. Temporal logics can be classified into linear and branching time logics. In the linear case at each moment there is only one possible future whilst in the branching case at each moment time may split into alternative futures.