📚 SUBJECT OVERVIEW

CS636 - Formal Methods

Total Questions 0
CURRICULUM UNITS

Chapters & Syllabus Units (45)

Select any chapter below to practice questions or explore syllabus topics.

VU CS636 Lecture 1 examines Introduction to Formal Methods. The lesson covers the software crisis, role of mathematical logic, verification vs validation, and safety-critical systems, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 2 examines Dijkstra's Algorithm, Implications and Equivalences. The lesson covers logical implications, truth tables, tautologies, useful equivalences, and Dijkstra's program calculation, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 3 covers Model Building Tools: Propositional and Predicate Calculus. The chapter explores model building tools, propositional calculus, predicate calculus, and universal and existential quantifiers, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 4 covers Logic and Set Theory: Properties of Equivalence. The chapter explores set theory operations, power sets, Cartesian products, binary relations, and equivalence properties, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 5 examines Logic and Propositions: Formal Foundations. The lesson covers compound propositions, truth functional completeness, satisfiability, and mathematical induction, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 6 covers Introduction to Hoare's Logic and Triples. The chapter explores C.A.R. Hoare's axiomatic semantics, Hoare triples {P} C {Q}, partial and total correctness, and assignment axioms, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 7 covers Hoare's Logic: Weakest Pre-conditions and Loops. The chapter explores Edsger Dijkstra's weakest precondition wp(C, Q), predicate transformers, loop invariants, and termination, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 8 covers Hoare's Logic: Conditionals and Control Flow. The chapter explores verification of conditional if-then-else statements, control flow paths, and invariant assertion propagation, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 9 covers Hoare's Logic with Example: Tower of Hanoi. The chapter explores axiomatic verification of recursive algorithms, inductive hypotheses, and the Tower of Hanoi problem, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 10 covers Hoare's Logic: Verification of Functions. The chapter explores formal verification of procedural functions, return value guarantees, frame conditions, and side effects, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 11 covers Function Specifications and Dijkstra's Guarded Commands. The chapter explores formal function contracts, Dijkstra's Guarded Command Language, guarded if statements, and non-determinism, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 12 covers Output Variables, Ghost Variables and Simultaneous Assignment. The chapter explores auxiliary ghost variables, simultaneous assignments, output variables, and calculating maximum of two numbers, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 13 covers Constructing Loops: Dutch National Flag Problem. The chapter explores loop calculation methodologies, invariant development, and the Dutch National Flag partitioning problem, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 14 covers Dutch National Flag Problem: Invariants and Proofs. The chapter explores complete mathematical verification of Dutch National Flag algorithm, invariant preservation, and termination, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 15 covers Defensive Programming and Design by Contract. The chapter explores defensive programming pitfalls, Bertrand Meyer's Design by Contract (DbC), mutual obligations, and benefits, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 16 examines Design by Contract: Components and Principles. The lesson covers preconditions (require), postconditions (ensure), class invariants, frame conditions, and contract inheritance, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 17 covers Implementation of Design by Contract with jContractor. The chapter explores implementing DbC in Java, bytecode instrumentation, jContractor framework, and separate contract methods, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 18 covers Pure Java Implementation of Design by Contract. The chapter explores native Java contract enforcement, Java assertions, custom exception hierarchies, and inheritance contracts, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 19 covers Object Constraint Language: Foundations and Context. The chapter explores OMG Object Constraint Language (OCL) standard, UML class constraints, contextual declarations, and self identifier, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 20 covers Advanced Object Constraint Language Expressions. The chapter explores OCL collection types (Set, Sequence, Bag), collection operations, iterate, select, reject, and @pre constraints, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 21 covers Structure of an Algebraic Specification. The chapter explores abstract data types (ADT), algebraic specification components, signature, types, sorts, generators, and observers, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 22 covers Algebraic Specifications: Axioms and Equations. The chapter explores equational axioms, term rewriting systems, confluence, termination, canonical forms, and initial algebra semantics, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 23 covers Algebraic Specification: Rules and Derivation Methods. The chapter explores algebraic derivation rules, structural induction proofs over terms, sufficient completeness, and consistency, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 24 covers New_List Specification Methods: Queue and Error Operations. The chapter explores FIFO Queue ADT algebraic specification, queue operations, exception handling, and error algebras, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 25 examines Structure of File System Algebraic Specification. The lesson covers hierarchical file system modeling, directory trees, file nodes, paths, and permissions, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 26 covers File System Algebraic Operations and Consistency. The chapter explores axiomatization of file operations: create, read, write, delete, path traversal, and consistency proofs, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 27 covers Specifications of Boolean, Pair, List, Quad and Bimap. The chapter explores parameterized algebraic data types, Boolean algebra, Pair and Quad tuples, and Bimap mappings, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 28 examines Tools for Algebraic Specifications and Subsystem Interfaces. The lesson covers algebraic specification toolchains, syntax checkers, term rewriters, and subsystem interfaces, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 29 examines Larch Specification Languages Architecture. The lesson covers Larch two-tiered specification methodology, Larch Shared Language (LSL) traits, and mathematical abstractions, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 30 covers Larch Interface Languages and Algebraic Integration. The chapter explores Larch/C++, Larch/Ada, binding programming types to mathematical traits, requires and ensures clauses, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 31 covers OBJ Family of Algebraic Specification Languages. The chapter explores Joseph Goguen's OBJ family, order-sorted algebra, subsorts, parameterized programming, modules, and theories, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 32 examines Advanced OBJ Specifications and Execution Semantics. The lesson covers executing specifications via term rewriting, associative-commutative matching, and OBJ3 case studies, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 33 covers Model-Based Specifications: VDM and Incubator System. The chapter explores Vienna Development Method (VDM-SL), state definitions, type invariants, and incubator system case study, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 34 covers Introduction to Z-Specification: Structure and Schema. The chapter explores Jean-Raymond Abrial's Z notation, Zermelo-Fraenkel set theory, graphical schema boxes, and declarations, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 35 covers Z-Specification: The Birthday Book State and Operations. The chapter explores classic Birthday Book specification in Z, state schema BirthdayBook, Init schema, and operations, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 36 covers Z Schema Calculus and Robust Error Handling. The chapter explores Z schema calculus operators: inclusion, conjunction, disjunction, Delta and Xi schemas, and error responses, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 37 examines Z-Specification: Refinement and Totalization. The lesson covers total operations in Z, precondition calculation rules, totalization techniques, and schema normalization, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 38 examines Z-Specification: Data Refinement and Verification. The lesson covers data refinement concepts, concrete state schemas, retrieve relations, and simulation verification conditions, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 39 covers Z-Specification: Program Refinement and Forward Simulation. The chapter explores deriving executable code from Z schemas, Dijkstra guarded commands, forward simulation, and correctness, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 40 covers Z-Specification: Modeling Operating System Components. The chapter explores formal specification of operating system components in Z, process management, and memory buffers, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 41 covers Z-Specification: Operating System Scheduler Architecture. The chapter explores Z modeling of process scheduler, ready queue, running state, and operations: insert, delete start/middle/end, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 42 covers Concurrent Systems Modeling: Introduction to Petri Nets. The chapter explores modeling concurrency and real-time systems, Carl Adam Petri's bipartite graphs, places, transitions, and firing rules, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 43 covers Concurrent System Development: Conflict and Concurrency. The chapter explores Petri net structural patterns: concurrency, sequence, conflict, confusion, reachability graphs, and deadlock detection, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 44 examines Petri Net Behavioral Properties and Invariant Analysis. The lesson covers behavioral properties: liveness, safety, boundedness, reversibility, incidence matrices, and P/T-invariants, providing students with rigorous formal specification methodologies, mathematical proof techniques, formal verification models, and comprehensive exam preparation aligned with Dr. Fakhar Lodhi principles.

VU CS636 Lecture 45 covers Formal Methods: Activities, Limitations and Seven Myths. The chapter explores industrial adoption, cost-effectiveness, lightweight formal methods, Anthony Hall's Seven Myths, and future trends, providing rigorous formal specification models, mathematical proof rules, and exam preparation aligned with Dr. Fakhar Lodhi principles.

CS636 - Formal Methods

Build Your Practice

Choose question types, chapters, and difficulty to practise this subject.

Question types
Chapter range
Difficulty and focus
Focus options