Hennessy–Milner logic

From Infogalactic: the planetary knowledge core
(Redirected from Hennessy-Milner logic)
Jump to: navigation, search

In computer science, Hennessy–Milner logic (HML) is a dynamic logic used to specify properties of a labeled transition system (LTS), a structure similar to an automaton. It was introduced in 1980 by Matthew Hennessy and Robin Milner in their paper "On observing nondeterminism and concurrency" (ICALP).

Another variant of the HML involves the use of recursion to extend the expressibility of the logic, and is commonly referred to as 'Hennessy-Milner Logic with recursion'.[1] Recursion is enabled with the use of maximum and minimum fixed points.

Syntax

A formula is defined by the following BNF grammar for Act some set of actions:

\Phi ::= \textit{tt} \,\,\, | \,\,\,\textit{ff}\,\,\, | \,\,\,\Phi_1 \land \Phi_2 \,\,\, | \,\,\,\Phi_1 \lor \Phi_2\,\,\, | \,\,\,[Act] \Phi\,\,\, | \,\,\, \langle Act \rangle \Phi

That is, a formula can be

constant truth \textit{tt}
always true
constant false \textit{ff}
always false
formula conjunction
formula disjunction
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \scriptstyle{[L]\Phi}
formula : for all Act-derivatives, Φ must hold
Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \scriptstyle{\langle L \rangle \Phi}
formula : for some Act-derivative, Φ must hold

Formal Semantics

Let L = (S, \mathsf{Act}, \rightarrow) be a labeled transition system, and let \mathsf{HML} be the set of HML formulae. The satisfiability relation {} \models {} \subseteq (S \times \mathsf{HML}) relates states of the LTS to the formulae they satisfy, and is defined as the smallest relation such that, for all states s \in S and formulae \phi, \phi_1, \phi_2 \in \mathsf{HML},

  • s \models \textit{tt} ,
  • if there exists a state s' \in S such that Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): s \xrightarrow{a} s'
and s' \models \phi, then s \models \langle a \rangle \phi,
  • if for all s' \in S such that Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): s \xrightarrow{a} s'
it holds that s' \models \phi, then s \models [ a ] \phi,
  • if s \models \phi_1, then s \models \phi_1 \lor \phi_2,
  • if s \models \phi_2, then s \models \phi_1 \lor \phi_2,
  • if s \models \phi_1 and s \models \phi_2, then s \models \phi_1 \land \phi_2.

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.

Sources

  • Lua error in package.lua at line 80: module 'strict' not found.
  • Sören Holmström. 1988. "Hennessy-Milner Logic with Recursion as a Specification Language, and a Refinement Calculus based on It". In Proceedings of the BCS-FACS Workshop on Specification and Verification of Concurrent Systems, Charles Rattray (Ed.). Springer-Verlag, London, UK, 294–330.


<templatestyles src="Asbox/styles.css"></templatestyles>