5.1.1. Introduction

This document is not part of the CellML specification. It gives a suggested interpretation of resets, and involves adding some rules and restrictions on the mathematics described by a CellML document. It is perfectly valid for a CellML model to break these rules and/or go beyond these restrictions. In that case, the interpretation given here may not hold.

For the purposes of this document, we use the term “variable” to mean “the mathematical variable represented by a connected variable set” (see {number} {name}) A model’s variables can be divided into four sets:

  • The variable or variables of integration, \(t\). These are defined as all variables which appear inside the MathML <bvar> element inside a <diff>.

  • The state variables, \(x\). These are defined as all variables for which an initial value is defined.

  • The constant variables (or parameters), \(p\). These are all variables which are not in \((x, t)\), and whose values do not depend on any other variable.

  • The derived variables, \(z\). The variables that are not in \((x, t, p)\).

5.1.1.1. Some extra restrictions

  • None of the variables can have boolean values.

  • The variables in \(t\) must not be constrained by the model equations or resets: they must be free variables.

  • Any variable for which a derivative is used (i.e.: the variables in a <diff> but not in its <bvar>) must define an initial value.

  • The model must not be overdefined or underdefined.

  • The sets \(t, x, z\) and \(p\) must not overlap.

Note that, while some of the most biologically interesting variables are found be in \(z\), for the purposes of evaluating the system trajectory they are simply functions of \((x, t, p)\). For the sake of clarity we can omit them and could, for example, specify a function of the model’s state as \(f(x, t, p)\) instead of \(f(x, t, p, g(x, t, p))\).