Sign up to save your podcastsEmail addressPasswordRegisterOrContinue with GoogleAlready have an account? Log in here.
Aaron Stump talks about type theory, computational logic, and related topics in Computer Science on his short commute.... more
FAQs about Iowa Type Theory Commute:How many episodes does Iowa Type Theory Commute have?The podcast currently has 173 episodes available.
January 29, 2020Types should be erased for executing and reasoning about programsIn which I argue that type information should be erased from programs by the compiler both for final execution and also for reasoning (in a language with dependent types, for example, where we can reason about program execution statically)....more13minPlay
January 24, 2020Why go beyond GADTs?GADTs are quite powerful. Why go all the way to true dependent types? And should you use the Curry-Howard isomorphism (see Chapter 3 of the podcast) or not?...more13minPlay
January 22, 2020GADTs for programming with representations of typesThis episode reviews some of the applications of GADTs we have discussed so far, and discusses an example where we want to write a function that consumes a number of inputs that is controlled by an argument to the function. ...more16minPlay
January 20, 2020Using GADTs for typed subsetting of your languageOne use case for GADTs (as a special case of dependent types) is to form a typed subset of your host language. One creates an EDSL called Expr a, where a is a type of the language (say this language is Haskell). Values of types Expr a are the abstract syntax trees of expressions of type a from your host language. This is just a special case of embedding a typed language into your host language: in this case the typed language is a subset of your host language....more15minPlay
January 16, 2020Example of programming with indexed types: binary search treesUsing indexed types, we can restrict the form of legal values in some datatype. A nice example is binary search trees, where we can statically enforce the binary search tree property using an indexed type bst l u, where l is a lower bound and u an upper bound on the data stored in the tree....more11minPlay
January 16, 2020Programming with indexed types using singletonsBasic idea of using singleton types like Nat n where n is a value from the index domain, to connect program expressions and index expressions. The data value of type Nat n is a copy of n, but living in the syntactic category of program expressions. This allows programs to operate on a proxy for n. Singletons library in Haskell mentioned....more12minPlay
January 14, 2020Limitations of indexed types that are not truly dependentIf indices to types come from a different syntactic category than programs, there are a few things you cannot do. Some initial thoughts on how to work around these....more15minPlay
January 13, 2020Programming with Indexed TypesIndexed datatypes like vectors, where the indices come from a different syntactic category than program expressions....more13minPlay
January 10, 2020Program Termination and the Curry-Howard IsomorphismFor programs to make sense as proofs, they need to be terminating (cannot run forever), since otherwise you can write infinite loops that have any type. Under Curry-Howard this means any formula is provable, which is one way to define inconsistency. (And logics have to be consistent to be useful.)...more11minPlay
January 07, 2020Why Curry-Howard for classical proofs is a bad idea for programmingIf you have dependent types, classical reasoning, and the Curry-Howard isomorphism, you can write programs that look like they are invoking oracles for undecidable problems -- but they are not, and this is confusing....more15minPlay
FAQs about Iowa Type Theory Commute:How many episodes does Iowa Type Theory Commute have?The podcast currently has 173 episodes available.