90 likes | 177 Views
Logic as a tool. Michael Huth. Logical Foundations of Programming. 2 nd 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.
E N D
Logic as a tool Michael Huth 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 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 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 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 Logic: tool-based modeling and reasoning
Tool • 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 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 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 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 Logic: tool-based modeling and reasoning