+#+title: Predicate Logic
+#+subtitle: (SE 212 Tutorial 5)
+#+author: Amin Bandali
+#+email: bandali@uwaterloo.ca
+#+date: Wed Oct 9, 2019
+#+language: en
+#+options: email:t num:t toc:nil \n:nil ::t |:t ^:t -:t f:t *:t <:t
+#+options: tex:t d:nil todo:t pri:nil tags:not-in-toc
+#+select_tags: export
+#+exclude_tags: noexport
+#+startup: beamer
+#+latex_class: beamer
+# #+latex_class_options: [bigger]
+#+latex_header: \setbeamercovered{transparent}
+#+latex: \setbeamertemplate{itemize items}[circle]
+#+beamer_color_theme: beaver
+
+* Today’s plan
+:PROPERTIES:
+:BEAMER_act: [<+->]
+:END:
+
+- do some semantics questions from homework 4
+- do some ND questions from homework 5
+
+* =h04q05=
+
+Provide a counterexample to show that the following argument is not
+valid and demonstrate that your answer is correct.
+
+#+begin_example
+forall y : M . exists x : N . p(g(x), y)
+|=
+exists z : M . p(z, z)
+#+end_example
+
+* =h04q05= \small{(cont’d)}
+
+#+begin_example
+Domain:
+ M = {m1, m2}
+ N = {n1, n2}
+
+Mapping:
+ Syntax | Meaning
+ --------------------------
+ g(.) | G(n1) := m1
+ | G(n2) := m2
+ --------------------------
+ p(., .) | P(m1, m1) := F
+ | P(m1, m2) := T
+ | P(m2, m1) := T
+ | P(m2, m2) := F
+#+end_example
+
+* =h04q05= \small{(cont’d)}
+
+#+begin_example
+Premise:
+ [forall y : M . exists x : N . p(g(x), y)]
+ = [exists x: N. p(g(x), ^m1)] AND
+ [exists x: N . p(g(x), ^m2)]
+ = (P(G(n1), m1) OR P(G(n2), m1)) AND
+ (P(G(n1), m2) OR P(G(n2), m2))
+ = (P(m1, m1) OR P(m2, m1)) AND
+ (P(m1, m2) OR P(m2, m2))
+ = (F OR T) AND (T OR F)
+ = T
+#+end_example
+
+* =h04q05= \small{(cont’d)}
+
+#+begin_example
+Conclusion:
+ [exists z: M . p(z, z)]
+ = P(m1, m1) OR P(m2, m2)
+ = F OR F
+ = F
+#+end_example
+
+* =h04q06=
+
+Express the following sentences in predicate logic. Use types in your
+formalization. Is the set of formulas consistent? Demonstrate that
+your answer is correct using the semantics of predicate logic.
+
+#+begin_example
+All programmer like some computers.
+Some programmers use MAC.
+Therefore, some people who like some computers use MAC.
+#+end_example
+
+* =h04q06= \small{(cont’d)}
+
+All programmer like some computers.\\
+Some programmers use MAC.\\
+Therefore, some people who like some computers use MAC.
+
+#+begin_example
+Formalization:
+ programmer(x) means x is a programmer
+ usesmac(x) means x uses MAC
+ likes(x, y) means x likes y
+
+forall x: Person . programmer(x) =>
+ exists y: Computer . likes(x, y),
+exists x: Person . programmer(x) & usesmac(x)
+|-
+exists x: Person .
+ (exists y: Computer . likes(x, y) & usesmac(x))
+#+end_example
+
+* =h04q06= \small{(cont’d)}
+
+These sentences are /consistent/. Here is an interpretation in which
+all the formulas are T:
+
+#+begin_example
+Domain:
+ People = {John}
+ Computer = {MacPro}
+
+Mapping:
+ Syntax | Meaning
+ -------------------------------------------
+ programmer(.) | programmer(John) = T
+ likes(.,.) | likes(John, MacPro) = T
+ usesmac(.) | usesmac(John) = T
+#+end_example
+
+* =h04q06= \small{(cont’d)}
+
+#+begin_example
+formula 1:
+ [forall x: Person . programmer(x) =>
+ exists y: Computer . likes(x, y)]
+ = [programmer(^John) =>
+ exists y: Computer . likes(^John, y)]]
+ = programmer(John) IMP likes(John, MacPro)
+ = T IMP T
+ = T
+
+formula 2:
+ [exists x: Person . programmer(x) & usesmac(x)]
+ = programmer(John) AND usesmac(John)
+ = T AND T
+ = T
+#+end_example
+
+* =h04q06= \small{(cont’d)}
+
+#+begin_example
+formula 3:
+ [exists x: Person . (exists y: Computer .
+ likes(x, y) & usesmac(x))]
+ = [exists y: Computer .
+ likes(^John, y) & usesmac(^John)]
+ = likes(John, MacPro) AND usesmac(John)
+ = T AND T
+ = T
+#+end_example
+
+* =h05q01a=
+
+If the following arguments are valid, use natural deduction AND
+semantic tableaux to prove them; otherwise, provide a counterexample.
+
+#+begin_example
+forall x . s(x) | t(x),
+forall x . s(x) => t(x) & k(c, x),
+forall x . t(x) => m(x)
+|-
+m(c)
+where c is a constant
+#+end_example
+
+* =h05q01a= \small{(cont’d)}
+
+#+begin_example
+#check ND
+forall x . s(x) | t(x),
+forall x . s(x) => t(x) & k(c, x),
+forall x . t(x) => m(x)
+|-
+m(c)
+#+end_example
+
+* =h05q01a= \small{(cont’d)}
+
+#+begin_example
+1) forall x . s(x) | t(x) premise
+2) forall x . s(x) => t(x) & k(c, x) premise
+3) forall x . t(x) => m(x) premise
+4) s(c) | t(c) by forall_e on 1
+5) s(c) => t(c) & k(c, c) by forall_e on 2
+6) t(c) => m(c) by forall_e on 3
+7) case s(c) {
+ 8) t(c) & k(c, c) by imp_e on 5, 7
+ 9) t(c) by and_e on 8
+ 10) m(c) by imp_e on 6, 9
+}
+11) case t(c) {
+ 12) m(c) by imp_e on 6, 11
+}
+13) m(c) by cases on 4, 7-10, 11-12
+#+end_example
+
+* =h05q01b=
+
+Is this formula a tautology?
+
+#+begin_example
+|- (exists x . p(x)) => forall y . p(y)
+#+end_example
+
+* =h05q01b= \small{(cont’d)}
+
+No, this formula is not a tautology. Interpretation:
+
+#+begin_example
+1) Domain = {a, b}
+
+2) Mapping:
+ Syntax | Meaning
+ ----------------------
+ p(.) | P(a) = T
+ | P(b) = F
+
+Conclusion:
+ [(exists x. p(x)) => forall y. p(y)]
+= (P(a) OR P(b)) IMP (P(a) AND P(b))
+= (T OR F) IMP (T AND F)
+= T IMP F
+= F
+#+end_example
+
+* =h05q01d=
+
+Is this argument valid?
+
+#+begin_example
+forall x . p(x) | q(x),
+forall x . !p(x)
+|-
+forall x . q(x)
+#+end_example
+
+* =h05q01d= \small{(cont’d)}
+
+#+begin_example
+#check ND
+
+forall x . p(x) | q(x), forall x . !p(x) |- forall x . q(x)
+
+1) forall x . p(x) | q(x) premise
+2) forall x . !p(x) premise
+3) for every xg {
+ 4) p(xg) | q(xg) by forall_e on 1
+ 5) case p(xg) {
+ 6) !p(xg) by forall_e on 2
+ 7) q(xg) by not_e on 5, 6
+ }
+ 8) case q(xg) {}
+ 9) q(xg) by cases on 4, 5-7, 8-8
+}
+10) forall x. q(x) by forall_i on 3-9
+#+end_example
+
+* Announcements
+
+- no tutorial next week (Oct 16) (reading week)
+- no tutorial the week after (Oct 23) (midterm marking)