BL

B. Liesnikov

info

Please Note

10 records found

Encoding Finite State Automata in Agda using coinduction

Evaluating the support for coinduction in Agda

The proof assistant Agda supports coinduction, which can be used to reason about infinite and cyclic structures. The possibilities and limitations of using coinduction in Agda are not well known. To better understand these, I will implement Finite State Automata and their equival ...

Modelling cyclic structures in Agda

Coinductive formalizations of Linear Temporal Logic

This thesis explores the formalization of Linear Temporal Logic (LTL) within the Agda proof assistant, focusing on the use of coinductive techniques to model infinite structures. Two primary questions guide this investigation: how can coinduction be employed to represent LTL form ...

Stuck in a (While) Loop

Assessing Coinduction in Agda using Cyclic Program Traces

Interactive proof assistants such as Agda have powerful applications in proving the correctness of software. Non-terminating programs, such as those containing infinite loops, result in execution paths of infinite length, which can introduce challenges when reasoning about such p ...

Productively recursing infinitely

Modelling evaluation of lambda calculus with coinduction in Agda

Coinduction is used to model infinite data or cycles in Agda. However, it is not as well explored in Agda as induction. Therefore, support for it might be lacking compared to induction. I explore how this applies for the evaluation of lambda calculus, what the different encodings ...

Modelling cyclic structures in Agda

Evaluating Agda's coinduction through modelling graphs

Graphs are a widely used concept within computer science. Modelling graphs can be done in various ways, but the most popular approach is doing so inductively. When graphs contain cycles modelling them becomes less intuitive. A solution for this is using the dual of induction call ...
Type checkers are invaluable tools which help programmers write correct programs. Fast and efficient type checkers are required to enable adoption of such tools in practice.

This study aims to provide an explorative overview of proposed efficiency improvements for type c ...

Dependent Types and Conversion Checking

A literature survey on implementation techniques for type systems

While dependent types can allow programmers to verify properties of their programs, implementing a type checker for a dependent type theory is often difficult. This is due to the fact that, in the presence of dependent types, deciding the equality of types - conversion checking - ...
Names are essential for structuring and reason-ing about programs. However, the implementation of names differs across many programming lan-guages. There is an bundance of choice between various implementation techniques with regards to name-binding techniques. As such, when des ...

Literature survey on implementation techniques for type systems: Inductive data types and pattern matching

What are the different implementation techniques for type systems regarding inductive data types and pattern matching that have been proposed in the literature?

Data types and pattern matching are fundamental concepts in programming. Data types define the structure of data, while pattern matching allows efficient manipulation and extraction of the same data. This text provides an overview of different implementation techniques for type s ...
The success of dynamically typed languages such as Python has resulted in an increased interest in supporting type inference in statically typed lan- guages. Type inference refers to automatic type detection based on surrounding context and allows retaining the type safety (and o ...