15.08.2013 Views

General Computer Science 320201 GenCS I & II Lecture ... - Kwarc

General Computer Science 320201 GenCS I & II Lecture ... - Kwarc

General Computer Science 320201 GenCS I & II Lecture ... - Kwarc

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

EdN:2<br />

30 CHAPTER 3. ELEMENTARY DISCRETE MATH<br />

1. o ∈ N1<br />

(zero is a unary natural number)<br />

2. ∀n ∈ N1.s(n) ∈ N1 ∧ n = s(n) (N1closed under successors, distinct)<br />

3. ¬(∃n ∈ N1.o = s(n)) (zero is not a successor)<br />

4. ∀n ∈ N1.∀m ∈ N1.n = m ⇒ s(n) = s(m) (different successors)<br />

5. ∀P.(P (o) ∧ (∀n ∈ N1.P (n) ⇒ P (s(n)))) ⇒ (∀m ∈ N1.P (m)) (induction)<br />

©: Michael Kohlhase 43<br />

We will use mathematical vernacular throughout the remainder of the notes. The abbreviations<br />

will mostly be used in informal communication situations. Many mathematicians consider it bad<br />

style to use abbreviations in printed text, but approve of them as parts of formulae (see e.g.<br />

Definition 46 for an example).<br />

Mathematics uses a very effective technique for dealing with conceptual complexity. It usually<br />

starts out with discussing simple, basic objects and their properties. These simple objects can be<br />

combined to more complex, compound ones. Then it uses a definition to give a compound object<br />

a new name, so that it can be used like a basic one. In particular, the newly defined object can be<br />

used to form compound objects, leading to more and more complex objects that can be described<br />

succinctly. In this way mathematics incrementally extends its vocabulary by add layers and layers<br />

of definitions onto very simple and basic beginnings. We will now discuss four definition schemata<br />

that will occur over and over in this course.<br />

Definition 51 The simplest form of definition schema is the simple definition. This just introduces<br />

a name (the definiendum) for a compound object (the definiens). Note that the name must<br />

be new, i.e. may not have been used for anything else, in particular, the definiendum may not<br />

occur in the definiens. We use the symbols := (and the inverse =:) to denote simple definitions in<br />

formulae.<br />

Example 52 We can give the unary natural number //// the name ϕ. In a formula we write<br />

this as ϕ := //// or //// =: ϕ.<br />

Definition 53 A somewhat more refined form of definition is used for operators on and relations<br />

between objects. In this form, then definiendum is the operator or relation is applied to n distinct<br />

variables v1, . . . , vn as arguments, and the definiens is an expression in these variables. When the<br />

new operator is applied to arguments a1, . . . , an, then its value is the definiens expression where<br />

the vi are replaced by the ai. We use the symbol := for operator definitions and :⇔ for pattern<br />

definitions. 2<br />

Example 54 The following is a pattern definition for the set intersection operator ∩:<br />

A ∩ B := {x | x ∈ A ∧ x ∈ B}<br />

The pattern variables are A and B, and with this definition we have e.g. ∅ ∩ ∅ = {x | x ∈ ∅ ∧ x ∈ ∅}.<br />

Definition 55 We now come to a very powerful definition schema. An implicit definition (also<br />

called definition by description) is a formula A, such that we can prove ∃ 1 n.A, where n is a new<br />

name.<br />

Example 56 ∀x.x /∈ ∅ is an implicit definition for the empty set ∅. Indeed we can prove unique<br />

existence of ∅ by just exhibiting {} and showing that any other set S with ∀x.x /∈ S we have S ≡ ∅.<br />

IndeedS cannot have elements, so it has the same elements ad ∅, and thus S ≡ ∅.<br />

To keep mathematical formulae readable (they are bad enough as it is), we like to express mathematical<br />

objects in single letters. Moreover, we want to choose these letters to be easy to remember;<br />

2 EdNote: maybe better markup up pattern definitions as binding expressions, where the formal variables are bound.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!