CIS 301. Captain's Log: Logical Foundations of Programming, Fall 2001.
- August 20: Syllabus, errata, course prerequisites and expected outcomes.
Why are we studying this course? Examples of interesting properties from
switching software, mechanical systems, aircraft software, mobile software;
proof-carrying code. Examples of simple propositions. Please read the preface
and pages 1-12 for next class.
- August 22: Assignment #1 out. Arguments, syntax of propositional logic,
binding priorities of connectives. Natural deduction: rules for conjunction
and double negation.
- August 24: Change in my office hours. Instead of Wednesdays
3:30 - 4:30 PM, I will hold it from 11:30 - 12:30 PM (as on Mondays). Please
send e-mail to the TA (varsha@cis.ksu.edu) if you have not received e-mail
from her yet or if you have added the class recently. Today's coverage:
Rules for implication elimination and introduction, modus tollens and several
examples. Please continue reading pp. 1- 18 of the book.
- August 27: Implication introduction (continued), provable equivalence,
disjunction introduction and elimination.
- August 29: Assignment #1 in. Assignment #2 out.Those joining late,
please e-mail the TA your e-mail address. Disjunction elimination (contd.),
unary negation. Reading: upto pp. 27.
- August 31: Unary negation (contd.), Derived rules, more examples using
Natural Deduction.
- September 3: University holiday.
- September 5: Assignment #2 in; Graded Assignment #1 out; Assignment #3
out. Provable equivalences: De Morgan's Laws; introduction to semantics of
propositional logic; well-formed propositional formulae.
- September 7: Backus-Naur form; truth tables; semantics of propositional
formulae. Reading: pp.33-34 (skip Section 1.2.5), pp. 38-51.
- September 10: Graded Assignment #2 out; Review solutions to Assignment #1
and Assignment #2.
- September 12: Assignment #3 in; Assignment #4 out; Semantic entailment;
soundness and completeness theorems for propositional logic, satisfiability
and validity; semantic equivalence.
- September 14: Checking validity; Intro. to Conjunctive normal form (CNF),
Negation normal form (NNF).
- September 17: Algorithm to convert into CNF.
- September 19: Assignment #4 in; Assignment #5 out; CNF algorithm
concluded; conversion to NNF; a worked out example. Reading: pp.56-83.
- September 21: Graded Assignment #3 out; Mathematical induction; course
of values induction; worked examples; DATE OF FIRST EXAM: FRIDAY, OCTOBER 5.
- September 24: Course of values induction (contd.); structural induction
and examples: tree induction, list induction. Reading: pp. 51-56.
- September 26: Assignment #5 in; Assignment #6 out; Graded Assignment #4 +
Solutions out; Handout on list induction; Review solutions to Assignment #3;
Show how to prove semantic equivalence; INDUCTION INCLUDED IN FIRST EXAM;
Syllabus for first exam is Chapter 1, pp. 1-84; skip Section 1.5.3; also
read class notes thoroughly.
- September 28: Handout: proving semantic equivalence; More examples of
proofs by mathematical induction and structural induction.
- October 1: Handout: graded Assignment #5; Handout: solutions to
Assignment #5; review solutions to Assignment #5; discussions on possible
questions for Exam 1: function on well-formed propositional formulas (e.g.,
IMPL_FREE, NNF); proofs of semantic equivalences (MUST BE DONE SEMANTICALLY
following September 28 handout); proofs of provable equivalences (MUST BE DONE
SYNTACTICALLY, i.e., using proof rules); no proofs using structural induction
but proofs using mathematical induction and course of values induction. Please
bring your questions re: EXAM 1 to the next class.
- October 3: Assignment #6 in; review solutions to Assignment #6; Intro.
to Predicate Logic; variables, predicates, "for all" and "there exists"
quantifiers.
- October 5: EXAM 1; No lecture.
- October 8: Predicate logic continued: several examples of formulas in
predicate logic; converting English sentences into predicate logic formulas;
the equality predicate; function symbols and their use.
- October 10: No lecture: instructor ill. SORRY.
- October 12: Assignment #7 out; Graded Assignment #6 out (with solutions);
predicate logic as a formal language; parse trees; free and bound variables;
scope of a variable. Reading: chapter 2, pp. 90-109.
- October 15: No lecture.
- October 17: No lecture.
- October 19: Student holiday.
- October 22: Assignment #7 in; substitution; Graded Exam #1 out. Some
discussions on Exam #1.
- October 24: Natural deduction proofs in predicate logic: rules for
for all introduction and elimination, and existential introduction and
elimination; examples. EXAM 2 WILL BE HELD THE WEEK OF NOVEMBER 12.
- October 26: More examples of natural deduction proofs for predicate
logic; Reading: chapter 2, pp 112-128.
- October 29: More examples of natural deduction proofs for predicate
logic; proofs using structural induction on formulas.
- October 31: Assignment #8 in; Assignment #9 out; Proofs using structural
induction (concluded); semantics of predicate logic formulas (introduction).
- November 2: Handout: A proof by structural induction; Semantics of
predicate logic formulas -- models. EXAM 2 WILL BE HELD ON FRIDAY, NOVEMBER 16.
- November 5: Graded assignment #8 out; Assignment #9 in; formal
definition of models; environments; checking a formula against a model.
- November 7: Assignment #10 out (due MONDAY, November 12); more examples
of checking formulas against a model; formal definition of satisfaction
relation |=. SYLLABUS FOR EXAM 2: (a) Chapter 2 (Pages 90-140, EXCEPT
Pgs. 110-111 and Section 2.4.3), (b) Induction (mathematical induction,
course-of-values induction, structural induction).
- November 9: more examples of models and checking formulas; more
explanations on why environments are needed.
- November 12: Assignment #10 in. Proving properties that are satisfied
in all models. Generation of counter examples to show that a property is
not satisfied.
- November 14: Handout: Solutions to Assignment #10. Introduction to
program verification (Chapter 4 of the textbook). Semantics of a simple
imperative language: the notion of state, semantics of expressions.
- November 16: Exam 2, no lecture.
- November 19: Assignment #10 out. Semantics of simple imperative language:
semantics of commands (statements). Preconditions and postconditions -- Hoare
triples. Definition of partial correctness. Simple examples. Proof calculus for
partial correctness -- assignment, sequencing, if-then-else.
READING: pages 216-245.
- November 21: No lecture; Assignment #11 out. Due Wednesday, November 28.
- November 23: No lecture; Thanksgiving break
- November 26: Examples of partial correctness for if-then-else (two
different formulations).
- November 28: Handout: Graded EXAM 2 ; While loops and invariants;
examples. Assignment #12 out.
- November 30: Handout: Solutions to Exam 2. Review of solutions to
Assignment 11. LAST LECTURE
- December 3: No lecture. Office hours will be held 11:30--12:30.
- December 5: No lecture. Office hours will be held 11:30--12:30.
Assignment #12 in by 11:00 AM to the front office. Please also pick up
solutions to Assignment #12.
- December 7: EXAM 3: Syllabus: Same syllabus as EXAM 2 + Chapter 4
(till page 252).
Anindya Banerjee