- 160 Views
- Uploaded on
- Presentation posted in: General

CS1502 Formal Methods in Computer Science

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 - - - - - - - - - - - - - - - - - - - - - - - - - -

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.

- Challenging, but not devious

- 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

- Named for Frederic Fitch
- Construct formal proofs
- Prove an argument is valid

- Named for George Boole
- Construct truth tables
- Verify a sentence is a tautology
- Verify two sentences are tautologically equivalent
- Prove an argument is valid

- 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

- Verify your solutions are correct (without instructor seeing)
- Submit homework for final grading to TA (by due date)

- 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

circle(a)

small(a)

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

feed(max,scruffy)

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

- A property possessed by an object
- Shape (e.g., Tet, Cube)
- Size (e.g., Small, Large)

- Shape relationship (e.g., SameShape)
- Size relationship (e.g., Smaller)
- Positional relationship (e.g., Between, LeftOf)
- Equality =

- 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.

- 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

- 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 and b are identical
- Usually, written in infix form a = b

- 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))

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

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

- 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

- A sentence formed by a single predicate followed by one or more terms
- A term is either a constant or a functional expression

Predicate(term1,term2,…,term-n)

Happy(bossof(sally))

Father(bill)

Tall(fatherOf(motherOf(sally)))

Happier(motherOf(bill),bossof(fatherOf(max)))

Fake(santa(rossParkMall)))

Real(santa(robinsonTownCenter)))

- 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?

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))

- For every xx
- x (man(x) mortal(x))

- There exists yy
- x(brando = favoriteActor(x))

- Names
- Predicates
- Functions
- Connectives
- Quantifiers and variables

Revised List