<?xml version="1.0"?>
<metadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:title>Equality between programs with effects</dc:title><dc:creator>Voorneveld,	Niels Frits Willem	(Avtor)
	</dc:creator><dc:creator>Simpson,	Alex	(Mentor)
	</dc:creator><dc:subject>Program equivalence</dc:subject><dc:subject>functional programming</dc:subject><dc:subject>call-by-push-value</dc:subject><dc:subject>behavioural logic</dc:subject><dc:subject>modalities</dc:subject><dc:subject>algebraic effects</dc:subject><dc:subject>applicative bisimilarity</dc:subject><dc:subject>Howe’s method</dc:subject><dc:subject>complete lattices</dc:subject><dc:description>This thesis studies notions of program equivalence for a call-by-push-value functional language with algebraic effects and general recursion. We mainly focus on behavioural equivalence, where program behaviour is specified by a collection of effect-specific formulas. Two programs of the same type are deemed equivalent if they satisfy the same formulas. To interpret effectful behaviour in a generic way, computation terms are evaluated to trees built from effect operators. These trees are then interpreted in a logic using modalities, which lift predicates on value types to predicates on computation types.
	
One of the main contributions of this thesis is identifying conditions on the modalities under which the behavioural equivalence induced by the logic is a congruence. This means equivalent terms cannot be distinguished by programs. To prove this property, we show that the behavioural equivalence coincides with an appropriate notion of applicative bisimilarity, where effects are interpreted using relators (which lift relations). This allows us to prove the aforementioned congruence using a variation of Howe's method. 

The algebraic effects to which the results apply include error, nondeterminism, probability, global store, input/output, and timer. Several combinations of these effects can also be described with the logic. However, in order to combine effects more easily, and to give more natural descriptions of program behaviour, the logic is generalised to a logic with quantitative formulas. Once again, the congruence property and connections with applicative bisimilarity are established.
	
Finally, we show that similar results hold also if the language is extended with additional type constructors. In particular, we consider universal polymorphic and recursive types.</dc:description><dc:date>2020</dc:date><dc:date>2020-01-30 09:41:30</dc:date><dc:type>Doktorsko delo/naloga</dc:type><dc:identifier>113745</dc:identifier><dc:identifier>UDK: 510.6</dc:identifier><dc:identifier>VisID: 106315</dc:identifier><dc:identifier>COBISS_ID: 18936409</dc:identifier><dc:language>sl</dc:language></metadata>
