The general workflow for spatio-temporal model construction and validation is depicted in Figure 2 and comprises the following steps:

1. Model construction. Building the computational model from biological observations and/or relevant references from the literature. 2. Spatio-temporal analysis. The model is simulated to generate time series data in which spatial patterns and clusters of such patterns are automatically detected and analysed. The output of the spatio-temporal analysis is formatted according to the STML standard specification. 3. Formal specification. Natural language properties representing the specification of the system are translated to formal PBLSTL statements. 4. Model checking. The model checker Mudi takes the spatio-temporal analysis output and the PBLSTL statements as input and decides if the model is valid or not using the validation method chosen by the user (e.g. frequentist statistical model checking). In case the model is invalid it is updated and then checked again.

Figure 2 Spatio-temporal model validation workflow. Workflow comprising all steps from model construction to model validation. The first step (1) describes the construction of the model from biological observations and/or literature. In the second step (2) the model is simulated to generate time series data which is passed to the spatio-temporal analysis module for automatic detection and analysis of spatial patterns and clusters of such patterns. The third step (3) comprises the translation of the natural language specification of the system to a formal probabilistic BLSTL (PBLSTL) specification. Finally the fourth step (4) describes the validation of the model with respect to the PBLSTL specification using the model checker Mudi. In case the model is invalid it is updated and the validation procedure repeated. Full size image

Model construction

Biological systems are usually modelled as stochastic processes which transition from the current state to the successor state when an event occurs (e.g. a biochemical reaction). This specific type of stochastic process is called a stochastic discrete-event system (SDES).

Definition 1.

The factored representation of an SDES (see [34], Chapter 2) is a 5-tuple 〈S, T, μ, SV, V〉 where:

S is the set of all possible states of the system;

T is the transition rates matrix which records the probability of the system to transition from the current state s i to the next state s j , ∀s i ,s j ∈S;

μ is a probability measure computing the probability of the system to reach a certain state along the sequences of states described by a set of simulation traces;

SV is the set of state variables describing the state of the system;

V is the value assignment function which computes the value ∈ ℝ of each state variable for a given simulation trace and state of the system.

Our aim is to additionally reason about properties of spatial patterns in such systems, and to quantify how these properties change over time. The following assumptions are made regarding the representation of space:

1. Only the discretised version of the 2D, respectively pseudo-3D Euclidean space is considered. A pseudo-3D space extends a 2D Euclidean space with a density measure for each position. The density measure indicates the proportion of occupied positions on the Oz axis for a fixed (x, y) position. Compared to a full 3D representation it does not specify explicitly which positions of the Oz axis are occupied but only their proportion. 2. The 2D Euclidean space is discretised by splitting it into m rows and n columns obtaining an m×n regular grid where m and n are finite, natural, positive numbers. The resolution of the results depends on the values of m and n. Higher values guarantee a fine-grained resolution while lower values account for a coarse-grained resolution.

The evolution of an SDES in space could be represented using one/multiple collections of m·n state variables such that each state variable represents one discretised position in space. The main advantage of this is that the structure of SDES does not change when adding spatial information to a model. However the main disadvantage is that semantically different state variables (e.g. concentrations, value of discretised position in space) belong to the same set without the possibility to explicitly distinguish between them at the entire set level. In the following we would like to reason about how subsets of positions in the discretised space (e.g. representing subpopulations of cells) and their geometric properties (e.g. area) change over time. Therefore there is a need to define detection and analysis methods which are specific to the collection of state variables encoding space, and do not apply to state variables encoding numeric values such as concentrations. For this reason the state variables encoding spatial information will be extracted in a separate set denoted as spatial state variables (SpSV). Moreover instead of representing space using m·n spatial state variables such that the value of each state variable ∈ ℝ , a single spatial state variable whose value ∈ ℝ + m × n is employed. The evaluation of such state variables to m×n real-valued non-negative matrices cannot be performed by the existing value assignment function V whose codomain is . Thus a corresponding spatial value assignment function (SpV) is defined.

Considering the above notations we define stochastic spatial discrete-event systems (SSpDES) as an extension of SDES with a set of spatial state variables SpSV and a spatial value assignment function SpV.

Definition 2.

An SSpDES is a 7-tuple 〈S, T, μ, NSV, S p S V, NV, S p V〉 where:

〈S, T, μ, NSV, N V〉 is a SDES (see Definition 1);

S p S V is the set of spatial state variables;

S p V is the spatial value assignment function.

The set S p S V contains all spatial state variables i.e. the variables recording the configuration of the discretised space in the current system state. The value of these variables is computed using the spatial value assignment function S p V:

SpV : E × S × SpSV → ℝ + m × n

where E denotes the set of all possible model executions/simulations, S the set of states, S p S V the set of spatial state variables, and m and n the dimensions of the discretised space. Given a model simulation σ at state s and a spatial state variable ssv, S p V(σ,s,s s v)=s v such that sv ∈ ℝ + m × n returns a m×n matrix of real non-negative values, where each element of the matrix corresponds to a position in the discretised space. For explanatory purposes an illustrative example of a simple SSpDES is provided in Additional file 1.

The size of the discretised space and the semantics of the values stored for each spatial compartment depends on the biological problem one tries to address. For instance space was discretised in 101×101 compartments for the phase variation case study because the sector-like patterns (see Figure 1A) should be easily recognizable. Employing a more coarse-grained spatial resolution would distort the shape of the sectors, respectively a more fine-grained resolution would lead to an increased model simulation time. The values recorded for each position of the discretised space are the number of wild-type, respectively “mutant” cells. Conversely in case of the chemotaxis case study the size of the discretised space was 100×100 with 1% of the spatial compartments occupied by cells. The reason for choosing this spatial resolution was to ensure that the formation of clusters is not an artifact of the inability of cells to move due to lack of space, but is a consequence of their chemotactic behaviour (see Figure 1B). In this case both number of cells and chemical attractant concentration were recorded for each position in the discretised space.

Finally one of the main advantages of defining SSpDESs as an extension of SDESs is backwards compatibility i.e. existing SDES models can be interpreted as SSpDESs having an empty set of spatial state variables SpSV. Moreover SSpDESs enable scaling up the development of computational models by extending existing non-spatial models, typical for subcellular scales (e.g. intracellular networks), with spatial information relevant to potentially higher scales (e.g. cellular/tissue level). For instance the computational model employed for the phase variation case study [35] is an illustrative example of constructing a spatial stochastic computational model from an initially non-spatial deterministic model [36].

Spatio-temporal analysis

Simulations of an SSpDES (see Definition 2) provide timeseries data describing how each position of the discretised space changes over time. In order to reason about (clusters of) spatial patterns an automatic mechanism for detecting and analysing the relevant subsets of positions in the discretised space is required. Two parameterised mechanisms will be employed for automatically detecting subsets of the discretised space; one for spatial patterns denoted in the rest of the paper as regions and the other for clusters. Depending on the values of the detection parameters a more fine- or coarse-grained subset of the discretised space is considered.

Regions

One of the main assumptions of the region detection mechanism is that subsets and not individual positions of the discretised space are considered. Secondly the value of each position of the discretised space records the number/density of entities of interest. Each position can hold 0 or more entities without pileup. The identity of the elements forming the region is not relevant. It is assumed that the type and size of the entities is constant throughout the entire space. Therefore the region detection mechanism operates in a homogeneous context with respect to the type of modelled entities. In the case that the system comprises multiple types of entities, each type is represented by a different spatial variable. Therefore the regions defined by groups of different entities can be computed by repeatedly applying the region detection mechanism for each spatial variable.

Given a model execution/simulation σ, the i-th state σ[ i], 0≤i≤|σ|, where |σ| represents the length of σ, and a spatial state variable ssv, let S P=S p V(σ,σ[ i],s s v).

Definition 3.

A region R with respect to σ[ i] and ssv is a subset of neighbouring positions in SP such that ∀x∈R,v a l u e(x)≥T H R E S H O L D and |R|>ε size , where THRESHOLD , ε size ∈ ℝ are user-definedparameters.

The problem of finding regions is similar to the segmentation problem in the Computer Vision literature [37]. 2D images can be represented as vectors or matrices where each position records the colour (multi-channel) or intensity (single channel) of the image. In order to apply Computer Vision methods for finding regions the matrix SP is translated to a grayscale image. The value of each position in the matrix is normalised and converted to the intensity value of the corresponding pixel in the resulting image. Examples of grayscale images in which sector-like patterns (phase variation) have been detected are depicted in Figure 3.

Figure 3 Detection of sector-like patterns in bacterial colonies. Grayscale images depicting the final state of two phase variation model simulations. Sector-like patterns corresponding to high-proportions of “mutant” cells are automatically detected and outlined in blue. Note that the colour scheme in these images is the inverse of the one in Figure 1A i.e. sector-like patterns are highlighted in white instead of black, respectively patches of wild-type cells are highlighted in black instead of white (gray). Moreover only one bacterial colony is depicted in each one of these images while in Figure 1A multiple bacterial colonies are shown. Full size image

The parameterised mechanism for detecting regions in grayscale images is described in Algorithm ??. All mentioned subalgorithms are implemented in the open source Computer Vision library OpenCV [38]; see Table 1 for a mapping between the subalgorithms described in Algorithm ?? and the OpenCV functions. Detailed descriptions of the OpenCV function parameters are provided in [39] and will not be restated here.

Table 1 Mapping between subalgorithms employed by Algorithm ?? and OpenCV functions Full size table

Clusters

Given a collection of regions, the cluster detection mechanism constructs groups of sufficiently similar regions. During this procedure no assumption is made regarding the size and type of the regions. In contrast to the region detection mechanism, the mechanism for detecting clusters operates in a heterogeneous context where both fixed and variable size subsets of the discretised space are considered.

Our assumption is that two regions should belong to the same cluster if the distance between them is below a certain threshold. A distance pseudometric d is defined for this purpose:

d : REG × REG → ℝ , d ( A , B ) = ( x B − x A ) 2 + ( y B − y A ) 2

where REG is the set of all regions, and d(A,B) computes the Euclidean distance between the centroids of two regions A,B∈R E G.

Definition 4.

A cluster C with respect to a set of regions REG, and a pseudometric d, is a subset of regions in REG such that ∀x,y∈C,d(x,y)≤ε distance and |C|>ε size , where ε distance and ε size are user-defined parameters.

The problem of grouping entities into clusters is addressed by the cluster analysis literature [40]. A popular algorithm which considers distance (not necessarily Euclidean) as a criterion for grouping objects is DBSCAN [41]. The original algorithm has a known issue because the assignment of border objects (i.e. objects between multiple clusters) to clusters depends on the order in which the set of objects is iterated. An improved version of the DBSCAN algorithm was introduced in [42] for addressing this issue and is employed by our cluster detection mechanism considering the pseudometric d as the distance function. Illustrative examples of grayscale images in which clusters of cells (chemotaxis) are automatically detected are depicted in Figure 4.

Figure 4 Detection of clusters in population of cells. Grayscale images representing the distribution of cells at a particular timepoint in two chemotaxis model simulations. Clusters comprising at least 5 sufficiently close cells are automatically detected and outlined using different colours. Cells are represented as gray points if they do not belong to a cluster. Otherwise they are represented as coloured points such that the colour of the cell matches the colour of the cluster it is a member of. Each cluster is enclosed by a polygon whose shape (triangular, rectangular or circular) best matches the shape of the cluster. Similarly to Figure 1B cells aggregate in the centre where the concentration of chemical attractant is highest. Full size image

Algorithm

Spatial measures

Each detected region/cluster is characterised by the set of spatial measures SM = {clusteredness, density, area, perimeter, distance from origin, angle(degrees), triangle measure, rectangle measure, circle measure, centroid (x-coord), centroid (y-coord)}. A detailed description of the semantics specific to regions and clusters is provided below; see Figure 5 for a graphical illustration.

Figure 5 Visual description of the spatial measures. The clusteredness (A) computes how close regions/neighbouring positions are to each other in a cluster/region. Density (B) measures the average value (e.g. concentration) of the considered positions in the discretised space. Area (C) and perimeter (D) have the usual meaning from discrete 2D geometry. Distance from the origin (E) represents the minimum distance between the point from the centre of the discretised space and the considered region/cluster. The angle (F) associated to a region/cluster is determined by three points: the origin, and the points found at the intersections of the region/cluster convex hull with the line perpendicular on the line determined by the origin and the centroid of the region/cluster. The shape (G) is determined by computing the degree of similarity between the shape of the region/cluster and a triangle, rectangle and circle. The centroid (H) is the geometric centre of the considered region/cluster. Full size image

Algorithm

Semantics of spatial measures for regions

The clusteredness of a set of regions represents the inverse of the average Euclidean distance between the centroids of the regions. Conversely the clusteredness of a single region is computed as follows:

clusteredness ( r ) = area ( r ) area ( r ) + ∑ h ∈ holes area ( h )

where r is a region and holes is the set of holes contained by r. As the area of the holes contained by regions increases the value of the clusteredness degree decreases and vice-versa.

The density of a set of regions is equal to the average density of the regions divided by the average Euclidean distance between the centroids of the regions. Conversely the density of a single region represents the average density value of the positions defining the region in the discretised space.

The area of the region is equal to the area of the polygon defined by the neighbouring positions in the Euclidean plane (subtracting the area of holes).

The perimeter of the region is equal to the perimeter of the polygon defined by the neighbouring positions in the Euclidean plane. Holes contained by the region are ignored in this case.

The distance from the origin is equal to the minimum distance between the polygon defined by the region and the centre point of the discretised space (origin).

The angle (degrees) is equal to the angle determined by the centre point of the discretised space P and the points obtained from the intersection of the line perpendicular on the line determined by P and the centroid of the region, and the convex hull of the polygon defined by the region.

The shape of the region is determined in a fuzzy manner by the triangular, rectangular and circular measures. Each one of these measures computes the likelihood of the region to have a triangular, rectangular, respectively circular shape using the following formula:

measur e s ( r ) = area ( r ) area ( minimum area s -shaped polygon enclosing r )

where r is a region, and the value of m e a s u r e s (r)∈ [ 0,1],∀s∈ {triangular, rectangular, circular}. Algorithms for computing the minimal enclosing triangles are provided in [43], respectively [44],[45] for rectangles and [46] for circles. For the phase variation case study, where the region detection mechanism is employed, the triangular shape is most relevant because it closely matches the shape of the sector-like patterns in the bacterial colonies; see Figure 1A for examples of such patterns highlighted in black.

The x/y-coordinates of the centroid are computed using moments of the polygon defined by the neighbouring positions in the Euclidean plane [47].

Semantics of spatial measures for clusters

The clusteredness of a set of clusters represents the inverse of the average Euclidean distance between the centroids of the clustersa. Conversely the clusteredness of a single cluster represents the inverse of the average Euclidean distance between the centroids of the regions in the cluster.

The density of a set of clusters is equal to the average density of the clusters divided by the average Euclidean distance between the centroids of the clusters. Conversely the density of a single cluster represents the average density value of the spatial entities defining the cluster in the discretised space.

The area of a cluster is equal to the area of the polygon defined by the convex hull of all regions in the cluster (ignoring the holes between regions).

The perimeter, distance from the origin, angle (degrees), shape and x/y-coordinates of the centroid of the cluster are determined using the same methods employed for regions. The main difference is that the polygon used to determine the outer boundary of the cluster is the convex hull computed for a group of regions instead of a single one. Moreover for the chemotaxis case study the circular and rectangular shapes are most relevant because they closely resemble the shape of cells clusters, respectively the shape of cell streams moving towards the point where the chemical attractant concentration is highest; see Figure 1B for an example of a circular cluster forming in the middle, respectively streams of cells moving towards it.

Spatio-temporal markup language (STML)

The output of the region/cluster detection mechanism comprises the spatial measures computed for each region/cluster. A standard data representation format is employed to describe the evolution of these spatial and other numeric measures over time. The main advantage of such a format is that data is represented in a uniform and consistent manner which facilitates exchange of data sets and integration of software tools. We define the Spatial Temporal Markup Language (STML) as an initial attempt to standardise the representation of spatio-temporal time series data.

For portability, structuring and readability purposes spatio-temporal time series data is stored in eXtensible Markup Language (xmlxml) files. The rules and constraints for the structure of these xml files are formalised in XML Schema Definition (xsdxsd) files with the filename format STML_LxVy.xsd STML_LxVy.xsd (Spatial Temporal Markup Language Level x, Version y); see [48] for the latest version of the format. An example of an xml file recording experimental spatio-temporal data is depicted in Listing 1.

The results of an (in silico/vitro/vivo) experiment experiment are recorded as a list of time points. The constraint imposed on experiment experiment elements are that they must contain at least one time point.

Each timepoint timepoint element can be identified by a non-negative integer value representing when the data was recorded. In case values are missing (e.g. in silico experiments) the value is determined automatically using the following formula:

t i = val , if the value val was predefined for t i 0 , if no value was predefined for t i and i = 0 t i − 1 + 1 , otherwise

The information stored in timepoint timepoint elements are a list of zero or more unique spatial entities, and a list of zero or more unique numeric state variables.

A spatialEntity spatialEntity element currently comprises only one element called pseudo3D pseudo3D which stores a pseudo3D spatial description of the entity. In the future if 2D or full3D representations are of interest they can be added as additional child elements to the spatialEntity spatialEntity element.

Every pseudo3D pseudo3D element has an associated type which can be either cluster or region. Similarly to the detected regions/clusters every pseudo3D pseudo3D element is characterised by a set of spatial measures constrained as described below:

clusteredness, density, area, perimeter, distanceFromOrigin, centroidX and centroidY - real non-negative values;

angle - a real non-negative value between 0 and 360;

shape - an optional element which can take the values “triangular”, “rectangular” or “circular”;

triangularMeasure, rectangularMeasure and circularMeasure - real non-negative values between 0 and 1;

The basic shapes considered by the current version of STML are appropriate to describe simple spatial patterns such as patches which spread outwards as they develop (triangular), ordered structures/streams (rectangular), and (uniform) groups/clusters (circular). Illustrative real-life examples of such shapes are the sector-like patches highlighted in black in Figure 1A (triangular), and the streams of cells (rectangular) depicted in Figure 1B which chemotactically migrate towards the centre and form a cluster (circular). In contrast complex patterns composed of multiple basic shapes cannot be described appropriately by the current shape similarity measures. In order to address this issue a potential future version of STML could include a more complex suite of shape descriptors.

Finally numericStateVariable numericStateVariable elements contain a name name and a value value child element where the name is a string and the value a real number.

All timeseries data are translated to STML using the region/cluster detection mechanisms and are then provided to the model checker Mudi for evaluation.

Bounded Linear Spatial Temporal Logic

We define a logic called Bounded Linear Spatial Temporal Logic (BLSTL) for specifying quantitative spatio-temporal properties against which STML files are automatically evaluated. BLSTL is an extension of BLTL, and LTL, with spatial, arithmetic and statistical functions. The temporal and Boolean propositions specific to BLTL remain unchanged, but new functions are introduced enabling to reason about how (distributions of) regions/clusters and their spatial properties change over time. For brevity purposes only an informal description of BLSTL is provided below; see Additional file 2 for more details and the formal syntax and semantics definition.

The same non-dimensional properties, spatial entities (regions and clusters) and measures (clusteredness, density, area, perimeter, distance from origin, angle(degrees), triangle measure, rectangle measure, circle measure, centroid (x-coord) and centroid (y-coord)) are considered both by the STML specification and the BLSTL formal language. Therefore BLSTL enables encoding logic statements with respect to both non-dimensional (e.g. species/proteins concentrations) and spatial properties, and correlations between the two.

In order to allow the construction of more complex logic statements BLSTL additionally enables specifying how arithmetic expressions comprising non-dimensional or spatial properties change over time. The considered functions which enable the construction of complex logic statements are either unary (e.g. absolute value, round, square root etc.) or binary (e.g. addition, division, power etc.).

These arithmetic functions take a single real value as input and are directly applicable to non-dimensional properties. However in order to apply the same functions to collections of regions/clusters, the distribution of spatial measures characterising the regions/clusters has to be reduced to a single real value. A set of statistical functions is made available in the specification of BLSTL in order to address this problem. The considered statistical functions are either unary (e.g. count), binary (e.g. median with respect to a user specified spatial measure), ternary (e.g. percentile with respect to a user specified spatial measure) or quaternary (e.g. covariance between two potentially different types of spatial entities and measures). One of the main differences between BLSTL and traditional BLTL-based formal languages is that the former enables reasoning about dynamic sets of spatial patterns whose cardinality changes over time, while the latter usually only considers fixed sets of non-dimensional variables.

Although the arithmetic and statistical functions described above enable the construction of more complex logic statements, there is a need for a mechanism which enables reasoning about particular subsets of the detected regions/clusters. For instance it may be the case that only regions with the area greater than a certain value, or clusters close to a particular point in space are of interest. In order to address this challenge BLSTL comprises a constraint-based mechanism which filters out all regions/clusters whose spatial measures do not meet a set of user-defined conditions.

Examples of natural language statements which can be encoded in BLSTL using the logic constructs defined above are:

Considering the time interval [0, 100], at some point in the future the number of cell clusters emerging in the environment, when the concentration of cAMP is less than 20, is greater than zero (Natural language);

F[ 0,100] (({c A M P}<20)∧(c o u n t(c l u s t e r s)>0)) (BLSTL).

The mean area of all cancerous regions grows throughout the entire simulation interval [5, 25] (Natural language);

G[ 5,25] (d(m e a n(r e g i o n s,a r e a))>0) (BLSTL).

Within the time interval [0, 300] the number of mutant cell populations emerging at a distance smaller than 10 from the area of inflammation (origin) is greater than 0 until the concentration of X drops below 5 (Natural language);

(c o u n t(f i l t e r(c l u s t e r s,d i s t a n c e F r o m O r i g i n<10))>0)U[ 0,300]({X}<5) (BLSTL).

BLSTL can be employed for specifying properties of individual simulation traces. However for specifying properties over a collection of traces we will extend BLSTL to Probabilistic BLSTL.

Probabilistic BLSTL

Definition 5.

A Probabilistic Bounded Linear Spatial Temporal Logic (PBLSTL) property ϕ is a logic property of the form P ⋈θ [ ψ] where ⋈ ∈{<,≤,>,≥}, θ∈(0,1) and ψ is a BLSTL property.

A PBLSTL property ϕ≡P ⋈θ [ ψ] holds for a SSpDES ( ℳ ⊧ P ⋈ θ [ ψ ] ) if and only if the probability of ψ to hold for an execution of is ⋈θ. Therefore in order to determine the truth value of a PBLSTL property ϕ the likelihood of it being true is computed.

Similarly to [17] evaluating the truth value of a PBLSTL property ϕ is harder than determining the truth value of a BLSTL property ψ. One counterexample for a BLSTL property is sufficient to decide that the property does not hold. Conversely one counterexample for a PBLSTL property ϕ does not necessarily imply that ϕ is not satisfied. A PBLSTL property ϕ does not hold if the likelihood of all counterexamples provides sufficient evidence to invalidate ϕ.

PBLSTL Model checking

Definition 6.

The probabilistic spatio-temporal model checking problem is to automatically verify if a SSpDES satisfies a PBLSTL property ϕ≡P ⋈θ [ ψ].

Different approximate probabilistic model checking algorithms can be employed depending on the method of constraining the approximation error and the approach for deciding if a logic property holds. For flexibility and completeness purposes in our approach both Bayesian and frequentist, statistical hypothesis test and estimate based methods are considered. The specific algorithms which were considered are provided in Table 2.

Table 2 Considered approximate probabilistic model checking approaches Full size table

All methods except probabilistic black-box take a user-defined (set of) parameter(s) as input representing the acceptable value of the approximation error. Such methods request and evaluate a variable number of model simulations until the approximation error constraints are satisfied. Conversely the probabilistic black-box model checking approach decides based on a fixed number of model simulations if the logic property is satisfied. However in this case the confidence measure of the provided result is not specified by the user and varies depending on the number of available model simulations.

Bayesian approaches should be used when information about the prior probability distribution of parameters in the model is available. This could lead to a reduced number of required samples in order to decide if a logic property holds. Conversely if no prior knowledge is available frequentist methods could be employed instead.

Statistical hypothesis test based approaches should be employed whenever deciding between two hypotheses where usually the null hypothesis represents the PBLSTL logic property ϕ, respectively the alternative hypothesis ¬ϕ. Conversely if the true probability of ϕ being true is computed and then compared to θ estimate based methods should be considered.

The algorithms provided in the original papers describing the model checking methods (see Table 2) were employed for all approaches except frequentist statistical. An improved version of this model checking method requiring less input parameters is described in [54]. However the initialisation step of the improved algorithm could potentially lead to invalid arithmetic expressions if extra conditions are not added to the algorithm implementation (C.H. Koh, personal communication, 2 nd of June, 2014). We propose a variant of the algorithm described in [54] with a modified initisalisation step which no longer requires adding extra conditions to the implementation. A more detailed description of the proposed solution which we consider in our approach is given in Additional file 3.

Finally the semantics of all considered approximate probabilistic approaches is described in Additional file 4. Moreover we prove in Additional file 5 that the model checking problem is well-defined; see ([55], Appendix A) for a similar proof for BLTL.

Implementation

All spatio-temporal model validation algorithms were implemented in the multidimensional model checking platform Mudib. For both efficiency and cross platform compatibility reasons Mudi was implemented in C++. The current version of the model checker was designed to be executed only from the command line. The user chooses the desired model checking algorithm and enters the required parameters via command line flags; run Mudi with the “–help–help” command line argument for more details.

The modular architecture of Mudi is separated into the inference engine and the model checking layers as depicted in Figure 6. The main advantage of this design choice is that changes at the inference engine layer do not require updates at the model checking layer and viceversa.

Figure 6 The architecture of the model checker Mudi. The model checking layer is decoupled from the inference engine and comprises all model checking types supported by Mudi. All model checking types depend on the same inference engine layer which contains the PBLSTL logic property parser (considering BLSTL syntax) and evaluator (considering BLSTL semantics). Full size image

The model checking layer comprises all supported model checking algorithms. Independently of the chosen algorithm the same inference engine is used for the logic statements’ evaluation. Conversely the inference engine layer comprises the logic statements parsing and evaluation algorithms. The parsing module verifies if a given logic property is syntactically correct and the evaluation module determines if the property is true/false considering a spatio-temporal execution of the model.