Postgraduate Course: Automated Reasoning (Level 11) (INFR11074)
Course Outline
School  School of Informatics 
College  College of Science and Engineering 
Credit level (Normal year taken)  SCQF Level 11 (Year 4 Undergraduate) 
Availability  Available to all students 
SCQF Credits  10 
ECTS Credits  5 
Summary  The overall aim of the course is to describe how reasoning can be automated. Its more specific aim is to provide a route into more advanced uses of theorem proving in automated reasoning and in solving challenging problems of mathematics. Major emphases are on: how knowledge can be represented using logic; how these representations can be used as the basis for reasoning and how these reasoning processes can be guided to a successful conclusion. Students are encouraged to develop a deep understanding of automated reasoning from mathematical "first principles" via theorem proving. 
Course description 
The course combines an exposition of theory with the analysis of particular computer programs for reasoning. Topics will be selected from the following list:
# First Order Logic and Higher Order Logic
* Syntax
* HOL: Types and terms, currying and binders
* Unification algorithm
* Natural Deduction
# Model Checking
* Computation Tree Logic: syntax and semantics
* A model checking algorithm
* Model checker: NuSMV or SPIN
* Fairness
* Alternatives and extensions of CTL: LTL, CTL*
# Interactive Theorem Proving
* Humanoriented methods
* Interactive provers and proof checkers
* LCF style theorem proving
* Proof styles
* Formalized Mathematics
# Decidable Problems and Automation
* Presburger arithmetic
* Geometry theorem proving
* Induction and recursion
* Simplification, proof planning, and rippling
# Program Verification
* Functional programs
* Case studies e.g. sorting algorithms
Relevant QAA Computing Curriculum Sections: Artificial Intelligence

Entry Requirements (not applicable to Visiting Students)
Prerequisites 

Corequisites  
Prohibited Combinations  Students MUST NOT also be taking
Automated Reasoning (Level 10) (INFR10041)

Other requirements  This course is open to all Informatics students including those on joint degrees. External students should seek special permission from the course organiser. Prior familiarity with propositional and predicate logic is recommended.
This course assumes prior mathematical knowledge of induction. 
Information for Visiting Students
Prerequisites  Prior familiarity with propositional and predicate logic is recommended. 
Course Delivery Information

Academic year 2014/15, Available to all students (SV1)

Quota: None 
Course Start 
Semester 2 
Timetable 
Timetable 
Learning and Teaching activities (Further Info) 
Total Hours:
100
(
Lecture Hours 20,
Seminar/Tutorial Hours 16,
Summative Assessment Hours 2,
Programme Level Learning and Teaching Hours 2,
Directed Learning and Independent Learning Hours
60 )

Assessment (Further Info) 
Written Exam
60 %,
Coursework
40 %,
Practical Exam
0 %

Additional Information (Assessment) 
The course consists of 2 practical exercises. Students may be asked to reason about particular domains (e.g. geometry) in a theorem prover such as Isabelle or Coq. They may also be asked to verify a program using the a model checker such as SPIN or NuSMV.
You should expect to spend approximately 30 hours on the coursework for this course. 
Feedback 
Not entered 
No Exam Information 
Learning Outcomes
On completion of this course, the student will be able to:
 1  represent mathematical and other knowledge using logic.
2  analyze the behaviour of various reasoning techniques from "first principles" as theorem proving tasks.
3  formalize informal knowledge and reason rigorously about it, understanding the role of mathematical proof in this process.
4  compare precisely the tradeoffs between some rival techniques for the same reasoning task.
5  implement key reasoning techniques in a computer program/theorem prover.
6  know how to use more sophisticated reasoning techniques implemented in a computer program/theorem prover.
7  organize their own study to manage project development.
8  search and read the literature.
9  conduct exploratory experiments.
10  critically analyze and evaluate other people's work.
11  be broadly uptodate with current research in the field

Reading List
* T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL: A Proof Assistant for HigherOrder Logic , SpringerVerlag, 2002.
* Logic in Computer Science, Modelling and and Reasoning about Systems, M.Huth and M.Ryan, Cambridge University Press, 2nd Edition, 2004
* The Computer Modelling of Mathematical Reasoning, A. Bundy, Academic Press 1983

Contacts
Course organiser  Dr Mary Cryan
Tel: (0131 6)50 5153
Email: mcryan@inf.ed.ac.uk 
Course secretary  Miss Claire Edminson
Tel: (0131 6)51 4164
Email: C.Edminson@ed.ac.uk 

