
On this lecture we make a brief introduction to Formal Methods in computer science.
On this lecture we see how we can install the Labeled Transition System Analyzer (LSTA).
On this lecture we study some principles of FSP.
On this lecture we study traces and how choices can be formalized.
On this lecture we study Nondeterminism and how we can apply it in Formal Methods.
On this lecture we study indexed processes and actions.
On this lecture we study guarded actions.
On this lecture we study the Parallel Composition and Action Interleaving between processes.
On this lecture we study shared actions in the Finite State Process (FSP) language.
On this lecture we study process labeling on FSP language.
On this lecture we study the set of prefix labels.
On this lecture we study action relabeling and synchronization between processes.
On this lecture we make a brief introduction to correctness properties.
On this lecture we study safety properties.
On this lecture we study liveness properties.
On this lecture we study action priority in finite state processes (FSP).
On this lecture we solve problem 1 of the problems section.
On this lecture we solve problem 2 of the problems section.
On this lecture we solve problem 3 of the problems section.
On this lecture we solve problem 4 of the problems section.
On this lecture we solve problem 5 of the problems section.
On this lecture we solve problem 6 of the problems section.
Mastering Concurrency: Learn FSP and LTS Through Practice is a foundational course in Formal Methods for Computer Science. It introduces the essential concepts and techniques used to design, specify, verify, and reason about complex systems in a rigorous way. This course focuses on two fundamental aspects of formal methods: Finite State Process Languages and Labeled Transition Systems.
Finite State Process Languages:
Students will delve into the world of finite state processes, a key abstraction used to model system behavior. The course begins by introducing finite automata and regular expressions, providing a strong foundation for understanding the basic principles of state machines. As the course progresses, students will explore advanced topics such as pushdown automata, context-free grammars, and formal language theory. Through hands-on exercises and problem-solving, students will gain practical skills in designing and analyzing systems using finite state processes.
Labeled Transition Systems:
Labeled Transition Systems (LTS) are fundamental for modeling and analyzing concurrent and distributed systems. This section of the course focuses on LTS as a formal framework for specifying and reasoning about the behavior of complex, interconnected systems. Students will learn how to model real-world scenarios, including communication protocols, software processes, and hardware components, using LTS. The course also covers verification techniques, including model checking, to ensure the correctness of these systems.
Throughout the course, students will develop the ability to think critically and formally about computer systems, making them better equipped to tackle complex problems in software engineering, hardware design, and systems analysis. By the end of the course, students will have a strong grasp of formal methods and be able to apply them to solve practical problems in computer science, enhancing their skill set for careers in software development, system design, and formal verification. This course serves as a crucial foundation for those interested in the broader field of formal methods and their application in various domains of computer science.