Logic: tool-based modeling and reasoning Logic as a tool Michael Huth 2/26/2019 Logic: tool-based modeling and reasoning
Logical Foundations of Programming 2nd year course (David Schmidt) Outcomes: ability to actively apply logical frameworks in modeling and reasoning about computer systems Prerequisites: high-school algebra, basic programming, exposure to loop-invariants 2/26/2019 Logic: tool-based modeling and reasoning
Logic: tool-based modeling and reasoning Contents Propositional logic: proofs, semantics, VAL algorithm Predicate logic: syntax & proofs, quantifier equivalences, models Model checking: CTL syntax & models, SMV, protocol design Program verification: correctness proofs for core language 2/26/2019 Logic: tool-based modeling and reasoning
Logic: tool-based modeling and reasoning Challenges Justify use of logics as tools Pattern matching is hard!? Diversity of background Class size: 60-75 and growing Varying nomenclature in tools/texts 12-15 weeks cannot achieve goals 2/26/2019 Logic: tool-based modeling and reasoning
Logic: tool-based modeling and reasoning Opportunities Algorithms and data structures Language design and analysis Compilers & flow analyses Reactive & embedded systems Software design validation Project: mobile code security Liability & responsibility 2/26/2019 Logic: tool-based modeling and reasoning
Logic: tool-based modeling and reasoning Symbolic Model Verifier by K. L. McMillan & E. Clarke at CMU Simple modular language for reactive systems (control) Freely available for Unix and NT platforms Logic text featuring SMV now available 2/26/2019 Logic: tool-based modeling and reasoning
Logic: tool-based modeling and reasoning Reality Too many competing needs Use of tool SMV requires competency in formal modeling Active skills confined to comprehension of existing models Transfer from “logic” to tool language is non-trivial Skills not re-used in curriculum 2/26/2019 Logic: tool-based modeling and reasoning
Logic: tool-based modeling and reasoning Future Better motivation of “tool-less” course components Develop customized projects Apply tool in team-driven projects Use tools for software design: e.g. Alcoa/Alloy by Daniel Jackson & the MIT Software Design Group 2/26/2019 Logic: tool-based modeling and reasoning
Logic: tool-based modeling and reasoning Links Course home page at http://www.cis.ksu.edu/~huth/301/home.html www tutor available at http://www.cis.ksu.edu/~huth/lics/tutor/index.html Contact information: huth@cis.ksu.edu 2/26/2019 Logic: tool-based modeling and reasoning