# Propositions and Boolean Formulæ

(命題と論理式)

## Discrete Mathematics I

### 3rd lecture, September 30 2016

http://www.sw.it.aoyama.ac.jp/2016/Math1/lecture3.html

# Today's Schedule

• Summary of last lecture
• Last week's homework
• Propositions
• Construction and use of logical (Boolean) formulæ
• This week's homework

# Summary of Last Lecture

• The history of numbers starts with the integers 1, 2, 3,...
• Across different cultures, the numerals for 1, 2, 3, 10 are similar
• Peano created a set of 5 axioms using "1" and "successor" only
• These axioms form a base for integer arithmetic
• The numeral 0 was discovered very late, but is important in positional number representation
• Positional number representation can use various bases
• In Information Technology, the bases 2, (8,) 10, and 16 are used

# Last Week's Homework: Jokes

Question: Why do computer scientist always think Christmas and Halloween are the same?

 Halloween September 30 oct 31 318 = 25 Christmas December 25 dec 25 2510 = 25

Question: At what age do Information Technologists celebrate "Kanreki" (還暦)

64 = 26 ("Kanreki" is a round number in the East Asian calendar. For Information Technology, powers of 2 are round numbers.)

# Last Week's Homework: Arithmetic and Base Conversion

• Total number of attempts: 617
• Completely solved: 107 students
• Average: 9.83 (out of 10)
• Less than 100%: 7 students
• Not solved: 2 students

Those who have not yet registered for "Discrete Mathematics I" at http://moo.sw.it.aoyama.ac.jp must come to the front immediately after this lecture

[まだ http://moo.sw.it.aoyama.ac.jp で授業登録できてない人は授業直後申し出ること!]

• Please use email, NOT the messaging facility in Moodle
• My email address is on the first slide of the handouts for lecture 1
• If you write me email, please make sure that it is complete. This includes:
• The course name
• Past communication context

(Email is different from LINE!)

[電子メールにより連絡し、名前、学籍番号、授業名、具体的な要件や過去の経緯を明確にすること。]

# Proposition

A proposition is a sentence that is objectively either correct or wrong.

Propositions may also be called statements.

Even if a sentence is not correct, it is a proposition.

Even if we do not know the answer (but there is a single answer), it is a proposition.

Examples:

• 2 times 2 is 4.
• 10 is smaller than 5.
• Four is an odd number.
• On January 1, 2017, it will rain in Fuchinobe.

# Counterexamples of Propositions

The following are NOT propositions:

• Subjective sentences (opinions,...)
• Questions
• Sentences that include undefined variables or pronouns

Counterexamples (NOT propositions):

• Her birthday is tomorrow (October 1, 2016).
Reason: 'Her' is undefined.
• x is even.
Reason: Undefined variable.
• When did you get up this morning?
Reason: Question
• Natto (納豆) is delicious.
Reason: Subjective opinion.

# Truth Values of a Proposition

Each proposition is either correct or wrong.

"Correct" is called true (真), and is written T, ⊤, or 1.

"Not correct" is called false (偽), and is written F, ⊥, or 0.

True and false together are called truth values.

Other representations for truth values: ○/×, on/off, ...

# Truth Values in Program Languages

The handling of truth values (also called booleans) differs among programming languages.

Some examples:

• C programming language:
• `0` represents false.
• All integers ≠`0` can represent true.
• The type `int` is used for booleans.
• The C99 standard introduced `bool`, `true`, and `false`.
• Unix shell:
• `0` represents true.
• All integers ≠`0` can represent false.
• This is exactly the opposite of C.
• Java programming language:
• false and true are represented as `false` and `true`.
• Integers (`int`) and boolean values (`boolean`) are different types.
• Ruby programming language:
• false and true are represented as `false` and `true`.
• `false` and `nil` (empty/nothing) are interpreted as false. All other objects are interpreted as true.

# Modeling

• Express facts of the real world as propositions
• Express relationships between facts as relationships between propositions
• Set up and work out logical formulæ using the propositions
• Apply the results to the real world

Examples: Conditions for getting a discount; conditions for a passing grade in a course; conditions for completing (winning) a game,...

# Logical Operations

With logical operations, we can create compound propositions from simpler propositions.

The most frequently used, and most basic, logical operations are:

• and: AB (conjunction)
• or: AB (disjunction)
• not: ¬A (negation)

# Conjunction (and)

Based on two propositions A and B, we can construct the following proposition:

A and B

We write AB (also: A·B, A B, AND(A, B))

Because ∧ has two operands, it is a binary operation.

AB is defined as follows:
If both A and B are true, then AB is true.
Else, AB is false.

Examples:
4 is smaller than 5 ∧ 4 is even. T (read: 4 is smaller than 5 and is even)
7 is smaller than 5 ∧ 7 is even. F (read: 7 is smaller than 5 and is even)
8 is smaller than 5 ∧ 8 is even. F (read: 8 is smaller than 5 and is even)
3 is smaller than 5 ∧ 3 is even. F (read: 3 is smaller than 5 and is even)

# Truth Table for Logical And

A B AB
F F F
F T F
T F F
T T T

Because there are only two truth values, we can define logical operations using a table. This is similar to the 9×9 multiplication table,

but would not work for operations on integers (e.g. multiplication) in general.

# Disjunction (or)

Based on two propositions A and B, we can construct the following proposition:

A or B

A or B is written AB (also: A+B, OR(A, B))

AB is defined as follows:
If both A and B are false, then AB is false.
Else, AB is true.

This means that logical or is inclusive. Logical or is a binary operation.

Examples:
4 is smaller than 5 ∨ 4 is even. T
8 is smaller than 5 ∨ 8 is even. T
3 is smaller than 5 ∨ 3 is even. T
7 is smaller than 5 ∨ 7 is even. F

A B AB
F F F
F T T
T F T
T T T

# Negation (not)

Based on one proposition A, we can construct the following proposition:

not A

not A is written ¬A (also A', A, ~A, NOT(A)).

¬A is true if A is false, and is false if A is true.

Negation has only one operand and is therefore a unary operation.

Examples:
¬ (4 is even). F (read: 4 is not even.)
¬ (4 is odd). T (read: 4 is not odd.)

Truth Table for Logical Not

A ¬A
F T
T F

# The Importance of Logical Operations

In Information Technology:

• Create models of the real world
• Model logical operations in programming languages
• Model electronic circuits

In Mathematics:

• Model mathematical statements and their relationships
• Verify proofs
• Automate mathematical reasoning

# Structure of Logical Formulæ

We can creat a logical formula from propositions, propositional variables, and logical operators.

Example: (A ∨ (¬B)) ∧ C

Operator precedence and omission of parentheses:

• Each operator has a given precedence.
• Operators with higher precedence get evaluated first.
• If the order of evaluation is not correct, we use parentheses to fix it.

For logical operators, ¬ has higher precedence than ∧, which has higher precedence than ∨.

Examples:
ABC = A ∨ (BC) ≠ (AB) ∧ C
(A ∨ (¬B)) ∧ C = (A ∨ ¬B) ∧ CA ∨ ¬BC

# Well-Formed Formula

(WFF)

Goal: Make the structure (grammar) of logical formulæ clear.

All of the following are well-formed formulæ

• Propositions
• Propositional variables
• If W and V are well-formed formulæ, then the following are also well-formed formulæ:
• (W)
• ¬W
• WV
• WV

Formulæ that do not fit the above definition are not well-formed formulæ.
(Attention: In a later lecture, we will introduce more logical operators. This will extend the definition.)

Examples: (A¬B) ∧ C (well-formed); (AB ¬∧) C (not well-formed)

# Formulæ as Trees

• Formulæ can be drawn as trees
• Trees have a root (at the top), internal nodes, and leaves
• The root and the internal nodes are operators
• The leaves are operands
• The tree shows a formula's structure
• Evaluation order is expressed in the tree's structure (bottom to top), so parentheses are unnecessary

# Example of Formula as a Tree

Example formula: A¬BC

# Logical Formula Evaluation with a Truth Table

Truth tables are often used to:

• Define logical operations
• Evaluate logical formulæ
• Prove properties of logical operations and formulæ [see lecture 5]

Example formula: (A ∨ ¬B) ∧ B

Evaluation using a truth table

A B ¬B A ∨ ¬B (A ∨ ¬B) ∧ B
F F T T F
F T F F F
T F T T F
T T F T T

# How to Write a Truth Table

• Create a column for each variable that appears in the formula.
• Starting with the the simplest subexpression, add a column for each subexpression in the formula.
• Add a column for the overall formula.
• Create one row for the headers, and 2n rows for entries, where n is the number of variables
• Fill in the variable columns. Start with FF... in the first row. End with TT... in the last row. When converting F to 0 and T to 1, the variable columns should show the binary numbers from 0 to 2n-1.
• Fill in the subexpression columns and the final column by calculating each value from earlier columns.
• Example: Write a truth table for D ∧ ¬F ∨ ¬E
```

```

# Boolean Functions

• A boolean function calculates a truth value from zero or more Boolean arguments.
• The domain of a boolean function are zero or more truth values.
• The range of a boolean function is a single truth value.
• Because Boolean arguments only take the values true and false, the number of Boolean functions is quite limited.

# This Week's Homework

Repeat each quiz until you get 100% correct answers; deadline: October 6 (Thursday) 22:00:

1. Solve the quiz Propositions: True or False
2. Solve the quiz Truth Table 1
3. Solve the quiz Truth Table 2
4. Use highschool texts or the web to research about laws for logical operations.

# 今回の宿題

クイズは満点まで繰り返す; 締切: 10月 6日 (木) 22:00:

1. Moodle で Propositions: True or False のクイズを解く
2. Moodle で Truth Table 1 のクイズを解く
3. Moodle で Truth Table 2 のクイズを解く
4. 論理演算の法則 (例: 結合率) について高校の資料やウェブで調べること。

# Glossary

round number

proposition

opinion

variable

pronoun

odd number

even number

truth value (of a proposition)
(命題の) 真偽
true

false

type (in programming languages)
(プログラム言語の) 型
logical operation

electronic circuits

reasoning

modeling
モデル化 (する)
(logical) and
かつ
binary operation

unary operation

conjunction

truth table

logical operation

compound proposition

(logical) or

disjunction

(logical) not
ではない
negation

logical formula

well-formed (logical) formula

grammar

tree

root
(木の) 根
internal node

leaf
propositional variable

(operator) precedence
(演算子の) 優先順位
evaluation
(式の) 評価
parentheses

subexpression

Boolean function

Boolean argument

domain (of a function)
(関数の) 定義域
range (of a function)
(関数の) 値域