Closure Properties of Decidable Languages

preview_player
Показать описание
Here we show that decidable languages are closed under the five "main" operators: union, intersection, complement, concatenation, and star. The key is to assume deciders exist for the original language(s), and then to construct a decider for the desired language based off of the originals. Most of them are simple, but some require to examine all possible cases of the input being "split" into multiple pieces.

▶ADDITIONAL QUESTIONS◀
1. Are decidable languages closed under homomorphism?
2. [Hard] Find an operation that decidable languages are NOT closed under. Bonus points if you can find one such that regular languages ARE closed under it (or to show one doesn't exist)!

▶SEND ME THEORY QUESTIONS◀

▶ABOUT ME◀
I am a professor of Computer Science, and am passionate about CS theory. I have taught over 12 courses at Arizona State University, as well as Colgate University, including several sections of undergraduate theory.

▶ABOUT THIS CHANNEL◀
The theory of computation is perhaps the fundamental theory of computer science. It sets out to define, mathematically, what exactly computation is, what is feasible to solve using a computer, and also what is not possible to solve using a computer. The main objective is to define a computer mathematically, without the reliance on real-world computers, hardware or software, or the plethora of programming languages we have in use today. The notion of a Turing machine serves this purpose and defines what we believe is the crux of all computable functions.

This channel is also about weaker forms of computation, concentrating on two classes: regular languages and context-free languages. These two models help understand what we can do with restricted means of computation, and offer a rich theory using which you can hone your mathematical skills in reasoning with simple machines and the languages they define.

However, they are not simply there as a weak form of computation--the most attractive aspect of them is that problems formulated on them are tractable, i.e. we can build efficient algorithms to reason with objects such as finite automata, context-free grammars and pushdown automata. For example, we can model a piece of hardware (a circuit) as a finite-state system and solve whether the circuit satisfies a property (like whether it performs addition of 16-bit registers correctly). We can model the syntax of a programming language using a grammar, and build algorithms that check if a string parses according to this grammar.

On the other hand, most problems that ask properties about Turing machines
are undecidable. This Youtube channel will help you see and prove that several tasks involving Turing machines are unsolvable---i.e., no computer, no software, can solve it. For example, you will see that there is no software that can check whether a
C program will halt on a particular input. To prove something is possible is, of course, challenging. But to show something is impossible is rare in computer
science, and very humbling.
Рекомендации по теме
Комментарии
Автор

Thank you so much for producing all this great content during this pandemic! It is very difficult to find good content about the theory of CS as it is taught at most universities. Please don't stop making these videos!

MonsterHunterDignity
Автор

University of Toledo student. Thank you so much, I was very behind in this class but between your and Lydia's videos I was able to catch up at a rapid pace and start crushing the homeworks. Cheers!

MEWOVER
Автор

ASU CS Student here. Your videos are the best and are helping me get by this class in these hard times <3 Thank you so much.

Dsalas
Автор

Thanks for making these videos! Helping me out a lot

spicefiend
Автор

For intersection, can't we just apply the same strategy with union and say if both accept then accept and reject otherwise? Or am I missing something?

onurrrrr
Автор

Are those two Turing machines the same or different?

legend