Divergence (computer science)
Template:Short description Script error: No such module "redirect hatnote". In computer science, a computation is said to diverge if it does not terminate or terminates in an exceptional state.[1]Template:Rp Otherwise it is said to converge.Script error: No such module "Unsubst". In domains where computations are expected to be infinite, such as process calculi, a computation is said to diverge if it fails to be productive (i.e. to continue producing an action within a finite amount of time).
Definitions
Various subfields of computer science use varying, but mathematically precise, definitions of what it means for a computation to converge or diverge.
Rewriting
In abstract rewriting, an abstract rewriting system is called convergent if it is both confluent and terminating.Template:Sfn
The notation t ↓ n means that t reduces to normal form n in zero or more reductions, t↓ means t reduces to some normal form in zero or more reductions, and t↑ means t does not reduce to a normal form; the latter is impossible in a terminating rewriting system.
In the lambda calculus an expression is divergent if it has no normal form.Template:Sfn
Denotational semantics
In denotational semantics an object function f : A → B can be modelled as a mathematical function where ⊥ (bottom) indicates that the object function or its argument diverges.
Concurrency theory
Script error: No such module "Labelled list hatnote".
In the calculus of communicating sequential processes (CSP), divergence occurs when a process performs an endless series of hidden actions.[2] For example, consider the following process, defined by CSP notation: The traces of this process are defined as: Now, consider the following process, which hides the tick event of the Clock process: As cannot do anything other than perform hidden actions forever, it is equivalent to the process that does nothing but diverge, denoted . One semantic model of CSP is the failures-divergences model, which refines the stable failures model by distinguishing processes based on the sets of traces after which they can diverge.
See also
Notes
<templatestyles src="Reflist/styles.css" />
Script error: No such module "Check for unknown parameters".
References
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- J. M. R. Martin and S. A. Jassim (1997). "How to Design Deadlock-Free Networks Using CSP and Verification Tools: A Tutorial Introduction" in Proceedings of the WoTUG-20.