# Propositions and Boolean Formulæ

(命題と論理式)

## Discrete Mathematics I

### 3rd lecture, October 5, 2018

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

### Martin J. Dürst # 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,... and 10, 20,... are similar
• Peano created a set of 5 axioms using "1" and "successor" only
• These axioms form a base for arithmetic on natural numbers
• The numeral 0 was discovered very late.
It 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 October 31 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.)

# About Moodle

Those who have not yet registered for "Discrete Mathematics I" at http://moo.sw.it.aoyama.ac.jp, or have their name in Romaji instead of Kanji, must come to the front immediately after this lecture

[まだ http://moo.sw.it.aoyama.ac.jp で授業登録できてない人 、又は漢字ではなくローマ字で名前を登録している人は必ず授業直後申し出ること!]

# 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, 2019, 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 6, 2018).
Reason: 'Her' is undefined.
• x is even.
Reason: Undefined variable.
• Did I eat breakfast 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.

"Wrong" (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 are also called Boolean values or just Booleans (after Georges Boole)

# Truth Values in Program Languages

Different programming languages handle truth values differently.

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.

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

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.

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

# Examples for Logical And

7 is smaller than 5 ∧ 7 is even (read: 7 is smaller than 5 and is even): F

8 is smaller than 5 ∧ 8 is even (read: 8 is smaller than 5 and is even): F

4 is smaller than 5 ∧ 4 is even (read: 4 is smaller than 5 and is even): T

3 is smaller than 5 ∧ 3 is even (read: 3 is smaller than 5 and is even): F

# Disjunction (or) Overview

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.

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

# Examples for Logical Or

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

# Negation (not) Overview

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.

A ¬A
F T
T F

# Examples for Logical Not

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

# 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

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

# Modeling Example

Condition for getting a discount: You get a discount if you are a student of Aoyama Gakuin University and today is a Friday or a Saturday.

Propositions:

Ao: You are a student of Aoyama Gakuin University.

Fr: Today (October 5, 2018) is a Friday.

Sa: Today (October 5, 2018) is a Saturday.

The truth values for these propositions are: Ao=T, Fr=T, Sa=F

The condition for a discount can be expressed as : Ao ∧ (FrSa)

The condition evaluates to T, so you get a discount!

# 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.
• Operations 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æ:
1. (W)
2. ¬W
3. WV
4. 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 leaf nodes
• 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)
→ 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

• Columns:
• A column for each variable that appears in the formula
• A column for each subexpression in the formula
(starting with the the simplest subexpression)
• A column for the overall formula
• Rows:
• One row for the headers
• 2n rows for entries, where n is the number of variables
• 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.
• Subexpression columns and final column: 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 11 (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.

# 今回の宿題

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

# Glossary

round number

proposition

objective (adj.)

subjective (adj.)

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)
(関数の) 値域