Research
A Brief Look at Untyped Lambda Calculus
Lambda calculus is a theoretic framework used to define the meaning of computation in languages like Haskell, Agda, Idris, and others. In this article, we introduce you to lambda calculus by exploring its untyped variant.
Upstream posts
How Dependent Haskell Can Improve Industry Projects
In this post, we talk about Dependent Haskell and show how it could be used to simplify and improve the code in a large production codebase.
How to Implement an LR(1) Parser
Learn more about LR parsers and how you can implement your own.
Formal Verification: History and Methods
In the first part of our series about formal verification, we discuss the roots of formal verification in fields such as mathematical logic and theoretical computer science.
Incomplete and Utter Introduction to Modal Logic, Pt. 2
In the first part, we introduced the reader to basic modal logic. In this part of the introduction to the modal logic, we observe use cases and take a look at connections of modal logic with topology, foundations of mathematics, and computer science.
Incomplete and Utter Introduction to Modal Logic, Pt. 1
Modal logic covers such areas of human knowledge as mathematics (especially topology and graph theory), computer science, linguistics, artificial intelligence, and philosophy. Explore this branch of logic together with Danya Rogozin.
Insane Properties of the Closed Long Ray and the Long Line
In topology, the long line, or Alexandroff line, is a space somewhat similar to the real line, but ‘longer’. To obtain the long line, one needs to put together a long ray in each direction. Closed long rays, as well as long lines, have remarkable properties.
Editor’s pick
Serokell at ZuriHac 2019
We participated in ZuriHac, the biggest Haskell Hackathon in the world. During the event, organized a Morley workshop together with the Tocqueville Group.
Upstream posts
Independent Functions or How to Create the Worst Random Number Generator
Random numbers are used in cryptography, and most of the cryptographic operations use computers. But a computer is a deterministic device, thus, it isn’t able to simply generate a truly random number. There are different approaches to solving the problem, and some of them are worse than others.
The Problem of Intermediate Recursively Enumerable Turing Degrees
The Turing degree of a set of natural numbers is a concept from computer science and mathematical logic that is a measure of the level of algorithmic unsolvability of the set. This post carries you deeper into the problem of the undecidable languages and the halting problem.
The Greatest Challenge of Modeling Large Quantum Computers
Perhaps you cannot quite picture how quantum computers work, but you definitely heard something about them. Nowadays, all rich, as well as not-so-rich states and corporations, are trying to build one. However, many face a problem of inability to emulate a large quantum computer. Let us figure out why.
Trees that Melt: Use of AVL Tree in Blockchains
Modern blockchain solutions have either large data storage inconveniences or security risks. In this article, we present a new solution based on AVL trees that solves these problems.
Constructive and Non-Constructive Proofs in Agda (Part 3): Playing with Negation
In the previous post, we briefly introduced the reader to dependently typed programming and theorem proving in Agda. Now we present an empty type to work with constructive negation. We discuss Marko…
Constructive and Non-Constructive Proofs in Agda (Part 2): Agda in a Nutshell
Last week, we started a new blog series to introduce you to creating constructive and non-constructive proofs in Agda..