Cs1502 formal methods in computer science
Sponsored Links
This presentation is the property of its rightful owner.
1 / 35

CS1502 Formal Methods in Computer Science PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

CS1502 Formal Methods in Computer Science. Lecture Notes 1 Course Information Introduction to Logic Part 1. Content. 70% logic and proofs

Download Presentation

CS1502 Formal Methods in Computer Science

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

CS1502 Formal Methods in Computer Science

Lecture Notes 1

Course Information

Introduction to Logic

Part 1


  • 70% logic and proofs

    • Pervades computer science, e.g., hardware circuit design, artificial intelligence, knowledge representation, database systems, programming languages, software engineering (design, verification, specification), …

    • Will help you understand proofs in math, science, theoretical CS


  • 30% Abstract models of computation

    • Needed for hardware design, compilers, computational complexity analysis, …

    • Interesting proofs; you will use what you learn in the first part of the course to understand them


  • Prerequisites:

    • CS441 Discrete Structures for Computer Science

    • CS445 Data Structures

  • Materials on course website, reachable from www.cs.pitt.edu/~wiebe

    • Schedule of readings, homeworks, exams

    • Lecture notes, available before class

      • Support for lectures; filled in in class


  • The TA will go over exercises and answer questions in recitation.

  • He will also cover logistics of submitting homeworks, and will post solutions to the homework.


  • Workload is steady throughout the course

  • 3 exams

  • Weekly homeworks (no projects)

    • Many are graded electronically

    • You can submit solutions as many times as you like

    • Get feedback without having to wait for instructor grading

    • Purpose is to help you master the material for the exams

  • Exams 90% Homework 10%


  • Exams

    • Challenging, but not devious

      • All of the questions will be related to an example worked out in the text, a homework exercise, or a problem we did in class.


  • Work is steady throughout the course

  • If you keep up, you will likely do OK

  • The work gets harder!

  • Please ask questions (lectures, recitations, office hours)

    • My office hours are T,TH 1:30-2:30 and by appointment – just send mail to set up a time


  • Do readings before lecture

  • Do the “you try it” exercises as you read the logic text

Software with LPL TextFitch

  • Named for Frederic Fitch

  • Construct formal proofs

  • Prove an argument is valid

Software with LPL TextBoole

  • Named for George Boole

  • Construct truth tables

  • Verify a sentence is a tautology

  • Verify two sentences are tautologically equivalent

  • Prove an argument is valid

Software with the TextTarski’s World

  • Named for Alfred Tarski

  • Construct sentences in first-order logic

  • Determine if a sentence is true wrt a world

  • Create a world that shows that an argument is invalid

Software with TextSubmit

  • Verify your solutions are correct (without instructor seeing)

  • Submit homework for final grading to TA (by due date)

More Notes on Homework

  • Many exercises will be submitted to the grade grinder

  • Please request that your grade assessments be sent to the TA (not to me!)

  • You may submit your solutions as many times as you like, but please send your TA only a single report per assignment

  • Now, let’s look at the webpage and syllabus…

Introduction to Logic




All x All y ((cube(x) ^ tet(y))  (leftof(x,y) ^ frontof(x,a)))


All x All y ((pet(x,y) ^ hungry(y))  feed(x,y))


  • A simple grammar. Each sentence has a single interpretation (unlike English!)

  • Used to describe a world, which we define.

  • Once we define the world, we can say what things names refer to, and whether a logical sentence is true or false.


  • Constants are used to name existing objects

    • a, b, c, d, e, f

    • max, claire, carl

  • No constant can name more than one object

  • An object can have more than one name or no name at all

  • Predicates

    • A property possessed by an object

      • Shape (e.g., Tet, Cube)

      • Size (e.g., Small, Large)

  • A relationship among objects

    • Shape relationship (e.g., SameShape)

    • Size relationship (e.g., Smaller)

    • Positional relationship (e.g., Between, LeftOf)

    • Equality =

  • Quick Example

    • Ackermann’s sentences and world in Tarski

    • Properties:

      • Cube, Tet (4 faces), Dodec (12 faces), Medium

    • Relations

      • Backof, Leftof

    • (Click verify, and you see that one of the sentences is false about the world)


    • Each predicate has a fixed number of arguments or “arity”. This is the number of constants the predicate needs to form a sentence.

    • In English, OK, but not in logic:

      • Susanna is taller than Dimitri

      • Susanna is taller than Dimitri and Jerome


    • Predicates must be “determinate”

    • Suppose p is an n-ary predicate.

    • For every n-tuple <o1,o2,…,oN> of objects, p(o1,o2,…,oN) is true or false (not kind of true).

    • What’s an n-tuple?

    • An n-tuple is a collection of n objects where order matters. Duplicates are allowed. In contrast, sets may not have duplicates, and the members of sets are not ordered.

    Atomic Sentences (so far)

    • A sentence formed by a single predicate followed by one or more names

      • Max is tallTall(max)

      • e is larger than bLarger(e,b)

      • e is identical to ae = a

  • A sentence expresses a claim that is either true or false

  • Atomic Sentences (so far)

    • Predicate(arg1, arg2,…, argn)

      • Predicates have names beginning with an uppercase letter or are represented by an operator symbol

      • The number of arguments is called the predicate’s arity

      • The order of the arguments is importantLarger(e,c) – e is larger than cLarger(c,e) – c is larger than eBetween(a,b,e) – a is between b and eBetween(b,a,e) – b is between a and e

  • =(a,b)

    • a and b are identical

    • Usually, written in infix form a = b

  • Function Symbols

    • A function is used to express complex names (a reference to an individual without using a name)

      • father(b) – b’s father

      • Used in a sentence: Tall(father(b))

      • password(c) – c’s password

      • Used in a sentence: Long(password(c))

  • A function may be nested

    • father(father(max))

    • Used in a sentence: Short(father(father(max)))

  • Can’t nest predicates

    • Tall(Tall(max)) * not a legal sentence*

  • Functional Expressions

    • Function(arg1, arg2,…, argn)

      • Function names begin with a lowercase letter or are expressed with a symbol

      • father(max) Max’s father

      • father(mother(max)) Max’s mother’s father

      • youngestChild(max,ann) Max and Ann’s youngest child

      • *(5,+(2,4)) 30

    Atomic Sentences (so far)

    • A sentence formed by a single predicate followed by one or more terms

    • A term is either a constant or a functional expression

    Example Atomic Sentences (which are functions and which are predicates?)








    ConnectivesApply to sentences tocreate more complex sentences.

    • Not 

    • And, Or, 

    • Material Conditional

    • Biconditional


    • Larger(e,c)

    • Cube(b)  Large(b)

    • SameRow(e,c)  BackOf(e,b)

    e is not larger than c

    b is a cube or b is large

    e and c are in the same row and e is in back of b

    First Order Logic

    • Names

    • Predicates

    • Functions

    • Connectives

    Are there more?

    Example FOL

    Brando is Nancy’s favorite actor.

    brando = favoriteActor(nancy)


    • Nancy’s favorite actor is better than Max’s favorite actor.

    • BetterActor(favoriteActor(nancy), favoriteActor(max))

    • Sean is his own favorite actor.

    • sean = favoriteActor(sean)

    • Brando is someone’s favorite actor.

    • x(brando = favoriteActor(x))

    Quantifiers and Variables

    • For every xx

      • x (man(x)  mortal(x))

    • There exists yy

      • x(brando = favoriteActor(x))

    First Order Logic

    • Names

    • Predicates

    • Functions

    • Connectives

    • Quantifiers and variables

    Revised List

  • Login