Search a title or topic

Over 20 million podcasts, powered by 

Player FM logo

Finite Languages Podcasts

show episodes
 
A podcast where logic meets lunacy, and graphs guide the way through the madness! Join us as we explore the beautiful intersections of mathematical logic, graph theory, discrete math, computer science, and the quirky chaos of everyday life. From proving theorems to untangling graph traversals, we’ll connect seemingly random dots to create a web of ideas that’s as entertaining as it is enlightening. Visit our site below:
  continue reading
 
Loading …
show series
 
To solve the problem raised in the last episode, I propose schematic affine recursion. We saw that affine lambda calculus (where lambda-bound variables are used at most once) plus structural recursion does not enforce termination, even if you restrict the recursor so that the function to be iterated is closed when you reduce ("closed at reduction")…
  continue reading
 
In this episode, I shoot down last episode's proposal -- at least in the version I discussed -- based on an amazing observation from an astonishing paper, "Gödel’s system T revisited", by Alves, Fernández, Florido, and Mackie. Linear System T is diverging, as they reveal through a short but clever example. It is even diverging if one requires that …
  continue reading
 
This deep dive offers comprehensive overview of automata theory and formal languages. They begin by introducing finite automata (FA), including Deterministic Finite Automata (DFA) and Non-deterministic Finite Automata (NFA), alongside fundamental concepts like alphabets, strings, and languages, and their associated operations.…
  continue reading
 
In this episode, I discuss an intriguing idea proposed by Victor Taelin, to base a logically sound type theory on an untyped but terminating language, upon which one may then erect as exotic a type system as one wishes. By enforcing termination already for the untyped language, we no longer have to make the type system do the heavy work of enforcin…
  continue reading
 
In this episode, we explore a novel method for distributed steganography using PDF files. The technique involves splitting a secret message using secret sharing algorithms and embedding the parts into PDFs by manipulating their internal structure—specifically through hidden pages. We discuss how this approach makes the embedded data virtually invis…
  continue reading
 
Automata theory: it's a computational model study, focusing on finite automata (DFA and NFA) and push-down automata (PDA). The course explores regular languages, their properties and proofs of non-regularity using concepts like the pumping lemma and Myhill-Nerode theorem. Foundational mathematical concepts such as set theory, sequences, relations, …
  continue reading
 
This account recounts a nightmarish incident at PayPal where a flawed implementation of Shamir Secret Sharing, a cryptographic technique for distributing a secret key among multiple parties, nearly caused a catastrophic system failure. The author, a PayPal engineer, explains the process of Shamir Secret Sharing and how he implemented it to improve …
  continue reading
 
The finite developments theorem in pure lambda calculus says that if you select as set of redexes in a lambda term and reduce only those and their residuals (redexes that can be traced back as existing in the original set), then this process will always terminate. In this episode, I discuss the theorem and why I got interested in it.…
  continue reading
 
SLAP and FLOP are two new speculative execution attacks targeting Apple's M-series chips. SLAP exploits the Load Address Predictor (LAP) to leak data by predicting incorrect memory addresses, while FLOP leverages the Load Value Predictor (LVP) to predict incorrect data values. Both attacks allow unauthorized access to sensitive information from web…
  continue reading
 
Security researchers discovered and exploited a vulnerability in Subaru's Starlink connected car system. This flaw allowed unauthorized access to sensitive data, including vehicle location history, and control over features like door locks. The vulnerability stemmed from weaknesses in the Starlink admin panel, which was accessible using readily ava…
  continue reading
 
In this episode, we explore hash tables, a data structure designed for efficient insertion, deletion, and searching of data using keys. The document contrasts direct addressing with hashing, highlighting the space efficiency of hash tables when dealing with large key universes. It discusses collision resolution techniques like chaining and open add…
  continue reading
 
Today, we are exploring suffix trees, a data structure used for solving string problems.We begin with basic definitions related to strings and alphabets, then introduces suffix trees as compressed tries containing all suffixes of a given text. Applications include substring searching, finding repeated substrings, and data compression. The discussio…
  continue reading
 
We discuss disjoint sets, also known as union-find data structures. Disjoint sets maintain collections of elements partitioned into non-overlapping sets, each with a representative element. Key operations include Make-Set (creating a new set), Find-Set (locating a set's representative), and Union (merging two sets). Different representations are ex…
  continue reading
 
A Trie, also known as a prefix tree, is a specialized tree-based data structure primarily used for efficiently storing and retrieving strings. Unlike traditional search trees where a node stores the entire key, each node in a trie represents a prefix shared by all its descendants. This unique structure facilitates fast search, insertion, and deleti…
  continue reading
 
I discuss what is called the locally nameless representation of syntax with binders, following the first couple of sections of the very nicely written paper "The Locally Nameless Representation," by Charguéraud. I complain due to the statement in the paper that "the theory of λ-calculus identifies terms that are α-equivalent," which is simply not t…
  continue reading
 
This episode focuses on QuickSort, a divide-and-conquer sorting algorithm, comparing it to MergeSort, and analyzing its average and worst-case time complexities. It then explains the order selection problem, which involves finding the kth smallest element in a dataset, presenting several algorithms with varying time complexities and practical consi…
  continue reading
 
This episodes presents methods for solving recurrence equations, which are crucial for analyzing the time complexity of recursive algorithms. It introduces asymptotic notations (Big O, Big Omega, Big Theta, little o, little omega) to describe the growth of functions. The lecture then explores several techniques for solving recurrences, including th…
  continue reading
 
The 2024 Nobel Prize in Physics was awarded to John Hopfield and Geoffrey Hinton for their foundational work on artificial neural networks (ANNs). The award citation highlights their contributions to machine learning, linking ANNs to concepts in physics, such as spin models and statistical mechanics. Hopfield's research focused on recurrent network…
  continue reading
 
This episode focuses on fundamental counting principles. It covers the product rule, sum rule, and subtraction rule for counting the number of ways to perform tasks that can be broken down into subtasks. Additionally, it explores the pigeonhole principle, counting in two different ways, and the relationship between permutations and combinations.…
  continue reading
 
Dive into the fascinating world of sentential logic! In this episode, we explore the foundations of propositional logic, the art of constructing truth tables, and how logical connectives like "and," "or," and "not" shape our reasoning. Whether you're a philosophy enthusiast, a math lover, or just curious about how we break down complex arguments in…
  continue reading
 
In this episode, after a quick review of the preceding couple, I discuss the property of normalization for STLC, and talk a bit about proof methods. We will look at proofs in more detail in the coming episodes. Feel free to join the Telegram group for the podcast if you want to discuss anything (or just email me at [email protected]).…
  continue reading
 
Like addition and multiplication on Church-encoded numbers, exponentiation can be assigned a type in simply typed lambda calculus (STLC). But surprisingly, the type is non-uniform. If we abbreviate (A -> A) -> A -> A as Nat_A, then exponentiation, which is defined as \ x . \ y . y x, can be assigned type Nat_A -> Nat_(A -> A) -> Nat_A. The second a…
  continue reading
 
It is maybe not so well known that arithmetic operations -- at least some of them -- can be implemented in simply typed lambda calculus (STLC). Church-encoded numbers can be given the simple type (A -> A) -> A -> A, for any simple type A. If we abbreviate that type as Nat_A, then addition and multiplication can both be typed in STLC, at type Nat_A …
  continue reading
 
This episode presents two somewhat more advanced examples in DCS. They are Harper's continuation-based regular-expression matcher, and Bird's quickmin, which finds the least natural number not in a given list of distinct natural numbers, in linear time. I explain these examples in detail and then discuss how they are implemented in DCS, which ensur…
  continue reading
 
In this episode, I wax rhapsodic for the potential of subtyping to improve the practice of pure functional programming, in particular by allowing functional programmers to drop various irritating function calls that are needed just to make types work out. Examples are lifting functions with monad transformers, or even just the pure/return functions…
  continue reading
 
In this episode, I begin discussing a paper titled "Type Inference with Simple Subtypes," by John C. Mitchell. The paper presents algorithms for computing a type and set of subtype constraints for any term of the pure lambda calculus. I mostly focus here on how subtype constraints allow typing any term (which seems surprising). You can join the tel…
  continue reading
 
We begin a discussion of subtyping in functional programming. In this episode, I talk about how subtyping is a neglected feature in implemented functional programming languages (for example, not found in Haskell), and how it could be very useful for writing lighter, more elegant code. I also talk about how subtyping could help realize a new vision …
  continue reading
 
In this episode, I conclude my discussion of some (but hardly all!) points from Pujet and Tabareau's POPL 2022 paper, "Observational Equality -- Now for Good!". I talk a bit about the structure of the normalization proof in the paper, which uses induction recursion. See this paper by Peter Dybjer for more about that feature. Also, feel free to join…
  continue reading
 
I continue discussing the Puject and Tabareau paper, "Observational Equality -- Now for Good", in particular discussing more about how the equality type simplifies based on its index (which is the type of the terms being equated by the equality type), and how proofs of equalities can be used to cast terms from one type to another. Also, in exciting…
  continue reading
 
Loading …
Copyright 2025 | Privacy Policy | Terms of Service | | Copyright
Listen to this show while you explore
Play