<?xml version="1.0" encoding="UTF-8"?>
<CourseUnit xmlns="http://www.manchester.ac.uk/CUICourseUnitDetails" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.manchester.ac.uk/CUICourseUnitDetails.xsd">
  <UnitCode Applicant="Y" Label="Unit code" Student="Y">
    <Code>COMP60332</Code>
  </UnitCode>
  <UnitTitle Applicant="Y" Label="Unit title" Student="Y">
    <Title>Automated Reasoning and Verification</Title>
  </UnitTitle>
  <MaxUnits Applicant="Y" Label="Credit rating" Student="Y">
    <Units>15</Units>
  </MaxUnits>
  <TeachingPeriods Applicant="Y" Label="Teaching period(s)" Student="Y">
    <Period>Semester 2</Period>
  </TeachingPeriods>
  <AcademicCareer Applicant="Y" Label="Academic career" Student="Y">
    <Value>Postgraduate Taught</Value>
  </AcademicCareer>
  <UnitLevel Applicant="Y" Label="Unit level" Student="Y">
    <Level>Level 6</Level>
  </UnitLevel>
  <StaffList Applicant="Y" Label="Teaching staff" RoleLabel="Course Unit Role" Student="Y">
    <StaffMember>
      <Name>Konstantin Korovin</Name>
      <Role>Unit coordinator</Role>
    </StaffMember>
  </StaffList>
  <OfferedBy Applicant="Y" Label="Offered by" Student="Y">
    <OrganisationList>
      <Organisation>
        <OrgName></OrgName>
      </Organisation>
    </OrganisationList>
    <GroupList>
      <Group>
        <GroupName></GroupName>
      </Group>
    </GroupList>
    <FheqLevels>
      <FheqLevel>
        <LevelNumber>1</LevelNumber>
        <LevelName>FHEQ level (Framework for Higher Education Qualifications) ' Masters/Integrated Masters P4 ' </LevelName>
      </FheqLevel>
    </FheqLevels>
    <Ects>
      <MaxUnits>European Credit Transfer &amp; Accumulation System Rating :   7.5</MaxUnits>
    </Ects>
  </OfferedBy>
  <MarketingOverview Applicant="Y" Label="Marketing Course unit overview" Student="">
    <Content>&lt;p&gt;&lt;span style="font-size: 14px;"&gt;Automated reasoning plays an important role in computer science because an incredible array of problems can be expressed as satisfiability tests or consequence queries. This means areas such as analyis, verification and security of software and hardware, knowledge engineering, AI and computational mathematics require support from automated reasoning tools. They are, for example, used in large software and hardware companies such as Microsoft and Intel for software and hardware analysis, synthesis and verification. An important part of systems development processes concerns reasoning about the behaviour of the systems in order to verify the correctness of the behaviour.&amp;nbsp; Also, in web and agent technologies automated reasoning methods are used for the intelligent processing of large ontologies, for decision making based on knowledge bases of structured data, and for formal specification and verification of web services. The motivation of the course is the introduction and study of a subset of the most important methods, techniques and tools used nowadays. These include SAT solvers, theory reasoners (SMT) and first-order reasoners.&lt;/span&gt;&lt;/p&gt;</Content>
  </MarketingOverview>
  <UnitOverview Applicant="" Label="Course unit overview" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;Automated reasoning plays an important role in computer science because an incredible array of problems can be expressed as satisfiability tests or consequence queries. This means areas such as analyis, verification and security of software and hardware, knowledge engineering, AI and computational mathematics require support from automated reasoning tools. They are, for example, used in large software and hardware companies such as Microsoft and Intel for software and hardware analysis, synthesis and verification. An important part of systems development processes concerns reasoning about the behaviour of the systems in order to verify the correctness of the behaviour.&amp;nbsp; Also, in web and agent technologies automated reasoning methods are used for the intelligent processing of large ontologies, for decision making based on knowledge bases of structured data, and for formal specification and verification of web services. The motivation of the course is the introduction and study of a subset of the most important methods, techniques and tools used nowadays. These include SAT solvers, theory reasoners (SMT) and first-order reasoners.&lt;/span&gt;&lt;/p&gt;</Content>
  </UnitOverview>
  <Aims Applicant="Y" Label="Aims" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;The course aims at providing an understanding of the foundation of propositional logic, first-order logic and important theories for modelling and reasoning specifying properties of programs. It covers practical and theoretical techniques and results that form the basis of resolution reasoning systems and the DPLL reasoning algorithm, which is used in SAT and SMT solvers. Verification and automated analysis of security protocols are discussed as important application domains.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;</Content>
  </Aims>
  <LearningOutcomes Applicant="Y" Label="Learning outcomes" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;On successful completion of this unit, a student should be able to:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Model information in the language of propositional logic, first-order logic, and integrated theories relevant to software verification;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Translate logical representations in English;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Describe important notions such as soundness, refutational completeness, decidability;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Explain relationships between satisfiability, unsatisfiability validity and equivalence (also relative to a theory), and exploit them for automated reasoning and verification;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Check these using truth tables, resolution, the DPLL algorithm and the DPLL(T) algorithm;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Describe and apply conjunctive and clausal normal form transformations;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Determine how sets (clauses) compare using orderings, and determine maximal elements (literals);&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Find and determine interpretations for clauses (formulas), and compute candidate models;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Apply the basic unification algorithm to unify terms and atomic formulas;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Use orderings and selection refinements to restrict how inferences are performed in resolution;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Simplify and determine redundancy of clauses;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Use a first-order reasoner to establish properties of relations and analyse a security protocol;&lt;/span&gt;&lt;/li&gt;	&lt;li&gt;		&lt;span style="font-size:14px;"&gt;Use a SAT/SMT solver to verify properties of data structures;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</Content>
  </LearningOutcomes>
  <Knowledge Applicant="Y" Label="Knowledge and understanding" Student="Y">
    <Content></Content>
  </Knowledge>
  <IntellectualSkills Applicant="Y" Label="Intellectual skills" Student="Y">
    <Content></Content>
  </IntellectualSkills>
  <PracticalSkills Applicant="Y" Label="Practical skills" Student="Y">
    <Content></Content>
  </PracticalSkills>
  <TransferableSkills Applicant="Y" Label="Transferable skills and personal qualities" Student="Y">
    <Content></Content>
  </TransferableSkills>
  <EmployabilitySkillsList Applicant="Y" Label="Employability skills" Student="Y">
    <Skill>
      <SkillId>Analytical skills</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Problem solving</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Research</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
    <Skill>
      <SkillId>Written communication</SkillId>
      <SkillDescription></SkillDescription>
    </Skill>
  </EmployabilitySkillsList>
  <Syllabus Applicant="Y" Label="Syllabus" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;The following lists the topics to be covered in the course. The teaching days will contain a mixture of lectures, examples classes, supervised laboratories and self-study. The number of lectures for each topic are given in brackets.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;* Introduction (1)&lt;br /&gt;* Orderings, multi-sets (1)&lt;br /&gt;* Propositional reasoning&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Language of propositional logic, semantics, truth tables (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Satisfiability, validity, equivalence, decidability (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Normal forms, CNF, clauses (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Propositional resolution, redundancy elimination (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + DPLL and SAT-solving (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Logical modelling (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Using SAT/SMT solver (demo &amp;amp; lab)&lt;br /&gt;* General first-order reasoning&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Language of first-order logic, modelling (2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + substitution, semantics (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Normal forms, clauses (2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Herbrand interpretations (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Soundness, literal &amp;amp; clause orderings, saturation (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Model construction (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Unication for general resolution (1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Basic general resolution, ordering &amp;amp; selection refinements (2)&lt;br /&gt;* Verification&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Reasoning modulo theories (SMT): equality, data structures (2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Verification, automated analysis of security protocols (2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + Using SPASS (demo &amp;amp; lab)&lt;/span&gt;&lt;/p&gt;</Content>
  </Syllabus>
  <TeachingMethods Applicant="Y" Label="Teaching and learning methods" Student="Y">
    <Content>&lt;p&gt;&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Lectures&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;Lecturers will be interspersed with example classes and labs on teaching days&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Examples classes&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;Example classes will take place on teaching days&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;&lt;strong&gt;Laboratories&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14px;"&gt;Labs will take place on teaching days&lt;/span&gt;&lt;/p&gt;</Content>
  </TeachingMethods>
  <AssessmentMethods Applicant="Y" Label="Assessment methods" Student="Y">
    <IntroText> </IntroText>
    <Method>
      <MethodId>1</MethodId>
      <MethodName>Written exam</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
    <Method>
      <MethodId>2</MethodId>
      <MethodName>Written assignment (inc essay)</MethodName>
      <MethodWeight>50%</MethodWeight>
    </Method>
  </AssessmentMethods>
  <FeedbackMethods Applicant="Y" Label="Feedback methods" Student="Y">
    <Content>&lt;p&gt;Exercise classes; assessment and feedback on written assignments.&lt;/p&gt;</Content>
  </FeedbackMethods>
  <RequirementsList Applicant="Y" Label="Pre/co-requisites" Student="Y">
    <Requirement>
      <UnitCode></UnitCode>
      <UnitTitle></UnitTitle>
      <RequirementType></RequirementType>
      <Description></Description>
    </Requirement>
    <AdditionalRequirement></AdditionalRequirement>
  </RequirementsList>
  <AcademicPrograms Applicant="Y" Label="Academic programmes" Student="Y">
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>MSc Artificial Intelligence</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Optional</Requirement>
    </AcademicProgram>
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>Computer Security</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Mandatory</Requirement>
    </AcademicProgram>
    <AcademicProgram>
      <Program>MSc Adv Computer Science</Program>
      <Plan>Digital Biology</Plan>
      <Level>PGDT Taught Component</Level>
      <Requirement>Optional</Requirement>
    </AcademicProgram>
  </AcademicPrograms>
  <FreeChoice Applicant="Y" Label="Available as a free choice unit?" Student="Y">
    <Content>Y</Content>
  </FreeChoice>
  <Accreditation Applicant="Y" Label="Accreditation" Student="Y">
    <Content></Content>
  </Accreditation>
  <RecommendedReading Applicant="Y" Label="Recommended reading" Student="Y">
    <Content></Content>
  </RecommendedReading>
  <StudyHours Applicant="Y" Label="Study hours" Student="Y">
    <IntroText> </IntroText>
    <ScheduledHours Applicant="Y" Label="Scheduled activity hours" Student="Y">
      <ActivityHours>
        <ActivityType>Assessment written exam</ActivityType>
        <Hours>6</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Lectures</ActivityType>
        <Hours>24</Hours>
      </ActivityHours>
      <ActivityHours>
        <ActivityType>Practical classes &amp; workshops</ActivityType>
        <Hours>16</Hours>
      </ActivityHours>
    </ScheduledHours>
    <PlacementHours Applicant="Y" Label="Placement hours" Student="Y">
      <ActivityHours>
        <ActivityType></ActivityType>
        <Hours>0</Hours>
      </ActivityHours>
    </PlacementHours>
    <TotalHours Applicant="Y" Label="Independent study hours" Student="Y">
      <Hours>104</Hours>
    </TotalHours>
  </StudyHours>
  <Notes Applicant="Y" Label="Additional notes" Student="Y">
    <Content></Content>
  </Notes>
</CourseUnit>
