# 1 Operational Semantics for While

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Models of Computation, Operational Semantics for While The language While of simple while programs has a grammar consisting of three syntactic categories: numeric expressions, which represent natural numbers; booleans, which are similar to expressions but represent truth values rather than numbers; and commands, which are imperative statements which affect the store of the computer. 1 (The dots in slide 1 denote that we can add more operations if necessary.) Syntax of While B Bool ::= true false E = E E < E... Slide 1 B&B B... E Exp ::= x n E + E... C Com ::= x := E if B then C else C C;C skip while B do C We use brackets were necessary to disambiguate. The commands C are: assignment, which takes a variable and an expression and gives a command, written x := E; the conditional, which takes a boolean and two commands and yields a command, written if B then C else C; sequential composition, which takes two commands and yields a command, written C 1 ;C 2 (note that the semicolon is an operator joining two commands into one, and not just a piece of punctuation at the end of a command); the constant skip command, which does nothing; the loop constructor, which takes a boolean and a command and 1 We always deal with abstract syntax, even though the grammar for the syntax of While looks a bit like the kind of concrete syntax you might type into a computer. So, we re really dealing with trees built up out of the term-forming operators of While.

2 Models of Computation, yields a command, written while B do C. We will study the operational semantics of While. However, we first study the operational semantics of simple expressions (without variables), since it is helpful to introduce the basic concepts of the operational semantics using such simple terms. 1.1 Operational Semantics for SimpleExp We give the operational semantics for simple expressions without variables. Syntax of Simple Expressions Slide 2 E SimpleExp ::= n E + E E E... where n ranges over the numerals 0, 1, 2,... We can add more operations if we need to. We work with abstract syntax (trees). Numbers v Numerals We distinguish between numerals, written n, 0, 1, 2,..., and the natural numbers, written n,0,1,2,... The natural numbers are the normal numbers that we use in everyday life, while the numerals are just syntax for describing these numbers. We write n to denote the natural number represented by numeral n. We assume that n = n, 0 = 0, 1 = 1,... We can add numbers together but not numerals. Instead, we can write a program in Exp which computes the result of adding a pair of numbers. The distinction between numerals and numbers is subtle, but important, because it is one manifestation of the difference between syntax and semantics. The difference should become clearer once we have studied the various se-

3 Models of Computation, mantics which follow. An operational semantics for SimpleExp An operational semantics for SimpleExp will tell us how to evaluate an Slide 3 expression to get a result. This can be done in two ways: small-step, or structural, operational semantics gives a method for evaluating an expression step-by-step; big-step, or natural, operational semantics ignores the intermediate steps and gives the result immediately Big-step semantics for SimpleExp Let us consider big-step semantics first. The big-step semantics for Simple- Exp takes the form of a relation between expressions and values, which are those expressions we deem to be a final answer. We relate expressions to numerals, writing E n. Should we have set this up as a relation between expressions and numbers? Perhaps, but, for more sophisticated languages, it will be necessary to have pieces of syntax on the right-hand side of the relation, so this is a more consistent approach.

4 Models of Computation, Big-step Semantics of SimpleExp Slide 4 (B-NUM) n n (B-ADD) E 1 n 1 E 2 n 2 n 3 = n 1 + n 2 E 1 + E 2 n 3 We can give similar rules for multiplication and other natural operations. Intuitively, a rule such as E 1 n 1 E 2 n 2 E 3 n 3 means that, if it is the case that E 1 n 1 and also E 2 n 2, then it is the case that E 3 n 3. We call E 1 n 1 and also E 2 n 2 the premises of the rule, and E 3 n 3 the conclusion. When there are no entries above the line, the rule is an axiom, which is to say that it always holds. Notice that the side-condition for the rule for addition, (B-ADD), talks about the addition operation on numbers in order to define the semantics of addition of numerals. The rules define a relation which says when an expression evaluates to a final answer. We say that E n is in this relation, or E n holds, only if it can be established from the axioms and rules. So, if we want to assert that, for example, 3+(2+1) 6, we need to show this to be the case by applying the axioms and rules given in the definition of.

5 Models of Computation, A Proof that 3+(2+1) 6 Slide 5 (B-NUM) 2 2 (B-NUM) 1 1 (B-ADD) (B-NUM) 3 3 (B-ADD) 3+(2+1) There are two natural properties of the big-step semantics for SimpleExp: determinacy, which says that an expression can evaluate to at most one answer; and totality, which says that an expression must evaluate to at least one answer.

6 Models of Computation, Some properties of Slide 6 Determinacy For all E, n 1 and n 2, if E n 1 and E n 2 then n 1 = n 2. Totality For all E, there exists a n such that E n Small-step Semantics of SimpleExp The big-step semantics given above tells us what the final value of an expression is straight away. The rules tell us how to compute the answer, but sometimes it is desirable to be more explicit about exactly how programs are evaluated. A small-step semantics lets us do just this. We shall define a relation E E which describes one step of evaluation of E.

7 Models of Computation, Small-step Semantics of SimpleExp Slide 7 (S-LEFT) (S-RIGHT) E 1 E 1 E 1 + E 2 E 1 + E 2 E E n + E n + E (S-ADD) n 1 + n 2 n 3 n 3 = n 1 + n 2 These rules say: to evaluate an addition, first evaluate the left-hand argument; when you get to a numeral, evaluate the right-hand argument; when you get to a numeral there too, add the two together to get a numeral. Note that there are no rules to evaluate a numeral, because they have already been fully evaluated. Consider the expression 3+(2+1). By the axiom (S-ADD), we have so, by rule (S-RIGHT), we have 3+(2+1) The axiom also says that , so we have 3+(2+1) It is important to realise that the order of evaluation is fixed by this semantics. We have (1+2)+(3+4) 3+(3+4), not (1+2)+7. The big-step semantics cannot make such a fine-grained stipulation Getting the final answer While the intermediate expressions of a computation are interesting, we are ultimately concerned with the final answer yielded by evaluating an expres-

8 Models of Computation, sion. To capture this mathematically from the small-step semantics, we define the relation which expresses multiple-step evaluations. Many Steps of Evaluation Given a relation, we define a new relation by: E E holds if and only if either E = E (so no steps of Slide 8 evaluation are needed to get from E to E ) or there is a finite sequence E E 1 E 2... E k E. This relation is called the reflexive transitive closure of. For our expressions, we say that numeral n is the final answer of E if E n.

9 Models of Computation, Normal Form Slide 9 An expression E is in normal form (and said to be irreducible), if there is no E such that E E. Theorem The normal forms of expressions are the numerals. Analogous to the big-step semantics, determinacy for the small-step semantics means that each expression can only evaluate (for one step) in at most one way. Note that we do not have totality, since normal forms do not evaluate any further. A more general property of is confluence, which states that if we choose two different evaluation paths for an expression then they can both be extended so taht they eventaully converge. Since is deterministic, confluence follows trivially, but we shall see other semantics where determinacy does not hold, but confluence does. Normalisation for means that every evaluation path must eventually reach a normal form; it cannot go on reducing forever. (There is also a property called weak normalisation, which means that every expression has some evaluation path that eventually reaches a normal form. This is less interesting for our semantics, but interesting when we consider the lambda calculus.) Since is both confluent and normalising, it follows that every expression evaluates to exactly one normal form. As we know, the normal forms are the numerals. These properties are typically proved by induction, as we shall see.

10 Models of Computation, Some Properties of Determinacy For all E,E 1,E 2, if E E 1 and E E 2 then E 1 = E 2. Slide 10 Confluence For all E,E 1,E 2, if E E 1 and E E 2 then there exists E such that E 1 E and E 2 E (Strong) Normalisation There are no infinite sequences of expressions E 1,E 2,E 3,... such that, for all i, E i E i+1. This means that every evaluation path eventually reaches a normal form. Theorem For all E, n 1, n 2, if E n 1 and E n 2 then n 1 = n 2. Both and give semantics to expressions in terms of the numerals to which they evaluate. Although they were defined differently, we can prove a theorem which shows that they agree.

11 Models of Computation, Slide 11 Theorem Theorem For all E and n, E n if and only if E n.

12 Models of Computation, Operational Semantics of While We give a small-step operational semantics to the programming language While, whose syntax was introduced in slide 1 and is repeated in slide 12. The first immediate issue is what it means to evaluate an assignment: x := E? where E might now contain variables. We need more information about the state of the machine s memory. Slide 13 gives the definition of a state suitable for modelling While. Intuitively, a state s tells us what, if anything, is stored in the memory location corresponding to each variable of the language, and s[x n] is the state s updated so that the location corresponding to x contains n. For example, consider the state s[x 4][y 5][z 6]. We have s[x 4][y 5][z 6](y) = 5 s[x 4][y 5][z 6](z) = 6 s[x 4][y 5][z 6](x) = 4 Our small-step semantics will therefore be concerned with programs together with their store. Syntax of While B Bool ::= true false E = E E < E... Slide 12 B&B B... E Exp ::= x n E + E... C Com ::= x := E if B then C else C C;C skip while B do C where x is variable and n is a numeral.

13 Models of Computation, States A state is a partial function from variables to numerals such that s(x) is defined for finitely many x. Slide 13 We have s[x n](y) = n if y = x = s(y) otherwise Our small-step semantics for While will be defined using configurations of the form E,s, B,s and C,s. The idea is that we evaluate E, B and C with respect to state s. Expressions and Booleans Expressions and booleans to do not present any difficulty. The only new kind of expression is the variable. Its semantics involves fetching the appropriate value of the variable from the state (the variable store). The expression evaluation relation e is described using the rules in slide 14. The rules describing the the boolean evaluation relation b are left as an exercise. We usually omit the subscripts e and b, since it is clear from the context which evaluation relation is appropriate. We use them in the formal definitions, to clarify the interactions between these relations and also the execution relation c for our language While.

14 Models of Computation, Expressions Slide 14 (W-EXP.LEFT) (W-EXP.RIGHT) E 1,s e E 1,s E 1 + E 2,s e E 1 + E 2,s E,s e E,s n + E,s e n + E,s (W-EXP.NUM) x,s e n,s s(x) = n (W-EMP.ADD) n 1 + n 2,s e n 3,s n 3 = n 1 + n 2 Exercise: Now write down the rules for booleans. Notice that the rules for evaluating expressions do not affect the state. Can you explain in words why this is the case? How might you prove it (difficult at the moment)? Commands The command execution relation has the form C,s c C,s. The rules for c (again, we often omit the subscript c) are different from the rules for e and b, in that they will directly alter the state. Intuitively, we want our rules to show how the commands update the state, and we will know that a command has finished its work when it reduces to skip. We shall now consider each command in turn and write down the appropriate rules. For assignment, x := E, we first want to evaluate E to some numeral n, and then update the state so that x contains the numeral n. For sequential composition, C 1 ;C 2, we first allow C 1 to run to completion, changing the state as it does so, and then compute C 2. For conditionals, we first evaluate the boolean guard: if it returns true we take the first branch; if it returns false, we take the second branch.

15 Models of Computation, Assignment Slide 15 (W-ASS.EXP) E,s e E,s x := E,s c x := E,s (W-ASS.NUM) x := n,s c skip,s[x n] Sequential Composition Slide 16 (W-SEQ.LEFT) C 1,s c C 1,s C 1 ;C 2,s c C 1 ;C 2,s (W-SEQ.SKIP) skip;c 2,s c C 2,s

16 Models of Computation, Conditional (W-COND.TRUE) if true then C1 else C 2,s c C 1,s Slide 17 (W-COND.FALSE) if false then C1 else C 2,s c C 2,s (W-COND.TRUE) B, s b B, s if B then C 1 else C 2, s c if B then C 1 else C 2, s What about while? Intuitively, we want to evaluate the boolean guard, and, if true, run the command then go back to the beginning and start again. Consider as a first try slide 18. The problem with this approach is that the only rule we ve got which is capable of entering the loop body is the one for while true do C, which ought to be an infinite loop. By evaluating the boolean guard in place, as in the first rule of slide 18, we have made a serious error. The point is that we do not want to evaluate that boolean once and use that value for ever more, but rather we want to evaluate that boolean every time we go through the loop. So, when we evaluate it the first time, it is vital that we don t throw away the old B, which this rule does. The solution is to make a copy of B to evaluate each time. In fact, we are able to give a single rule for while using the conditional command, as shown in slide 19.

17 Models of Computation, Incorrect Semantics for while Slide 18 (W-WHILE?) B,s b B,s while B do C,s c while B do C,s (W-WHILE?) while false do C,s c skip,s (W-WHILE?) while true do C,s c? Correct Semantics for while Slide 19 (W-WHILE) while B do C,s c if B then (C; while B do C) else skip, s All this rule does is unfold the while loop once. If we could write down the infinite unfolding, there would be no need for the while syntax.

18 Models of Computation, An Example Slide 20 shows a program for computing the factorial of x and storing the answer in variable a. Let s be the state (x 3,y 2,a 9), using an obvious notation for states. It should be the case that C,s skip,s where s (a) = 6. (Can you predict the final values of x and y?) Let s check that this is correct. First some abbreviations: we write C for the sub-program while y > 0 do (a := a y; y := y 1) and s i,j,k for the state (x i,y j,a k). Thus, for our factorial example, the initial state s can be written s 3,2,9. Now let s do the evaluation. Each line should really be justified by reference to one of the rules of the operational semantics. A factorial program! Slide 20 C = y := x;a := 1; while y > 0 do (a := a y; y := y 1)

19 Models of Computation, y := x; a := 1; C, s 3,2,9 y := 3; a := 1; C, s 3,2,9 skip; a := 1; C, s 3,3,9 a := 1; C, s 3,3,9 skip; C, s 3,3,1 C, s 3,3,1 if y > 0 then (a := a y; y := y 1; C ) else skip, s 3,3,1 if 3 > 0 then (a := a y; y := y 1; C ) else skip, s 3,3,1 if true then (a := a y; y := y 1; C ) else skip, s 3,3,1 a := a y; y := y 1; C, s 3,3,1 a := 1 y; y := y 1; C, s 3,3,1 a := 1 3; y := y 1; C, s 3,3,1 a := 3; y := y 1; C, s 3,3,1 skip; y := y 1; C, s 3,3,3 y := y 1; C, s 3,3,3 y := 3 1; C, s 3,3,3 y := 2; C, s 3,3,3 skip; C, s 3,2,3 C, s 3,2,3 if y > 0 then (a := a y; y := y 1; C ) else skip, s 3,2,3 if 2 > 0 then (a := a y; y := y 1; C ) else skip, s 3,2,3 if true then (a := a y; y := y 1; C ) else skip, s 3,2,3 a := a y; y := y 1; C, s 3,2,3 a := 3 y; y := y 1; C, s 3,2,3 a := 3 2; y := y 1; C, s 3,2,3 a := 6; y := y 1; C, s 3,2,3 skip; y := y 1; C, s 3,2,6 y := y 1; C, s 3,2,6 y := 2 1; C, s 3,2,6 y := 1; C, s 3,2,6 skip; C, s 3,1,6 C, s 3,1,6 if y > 0 then (a := a y; y := y 1; C ) else skip, s 3,1,6 if 1 > 0 then (a := a y; y := y 1; C ) else skip, s 3,1,6 if true then (a := a y; y := y 1; C ) else skip, s 3,1,6 a := a y; y := y 1; C, s 3,1,6 a := 6 y; y := y 1; C, s 3,1,6 a := 6 1; y := y 1; C, s 3,1,6 a := 6; y := y 1; C, s 3,1,6 skip; y := y 1; C, s 3,1,6 y := y 1; C, s 3,1,6 y := 1 1; C, s 3,1,6 y := 0; C, s 3,1,6 skip; C, s 3,0,6 C, s 3,0,6 if y > 0 then (a := a y; y := y 1; C ) else skip, s 3,0,6 if 0 > 0 then (a := a y; y := y 1; C ) else skip, s 3,0,6 if false then (a := a y; y := y 1; C ) else skip, s 3,0,6 skip, s 3,0,6 As you can see, this kind of calculation is horrible to do by hand. It can, however, be automated to give a simple interpreter for the language, based directly on the semantics. It is also formal and precise, with no argument about what should happen at any given point. Finally, it did compute the right answer!

20 Models of Computation, Some Facts Recall that the small-step semantics for expressions satisfies determinacy, confluence and normalisation, slide 10. Determinacy and confluence hold for the execution relation c for While, but normalisation does not hold. Determinacy and Confluence for c The execution relation c for While is deterministic: that is, for all C, s, C 1, s 1, C 2, s 2, Slide 21 if C,s c C 1,s 1 and C,s c C 2,s 2 then C 1,s 1 = C 2,s 2. Thus, the relation c is confluent: that is, for all C, s, C 1, s 1, C 2, if C,s c C 1,s 1 and C,s c C 2,s 2 then there exists C,s such that C 1,s 1 c C,s and C 2,s 2 c C,s Analogous results hold for the relations e and b. However, normalisation does not hold, as illustrated in slide 24. It is possible for a computation to be non-terminating: that is, a computation to result in an infinite loop. Let us prove that (while true do skip) never reaches a result, using the fact that the small-step semantics of While is deterministic.

21 Models of Computation, Answer Configurations A configuration skip, s is said to be an answer configuration. Slide 22 Since there is no rule for executing skip, answer configuations are normal forms: that is, there is no C,s with skip,s c P,s. For expressions, the answer configurations are n,s for numeral n. For booleans, the answer configurations are true, s and false,s. Stuck Configurations There are other normal forms for configurations, called stuck configurations. For example, y,(x 3) is a normal expression configuration, Slide 23 since y cannot be evaluated in the state (x 3).This configuration is stuck. Another example is the stuck command configuration x := y + 7;y := y 1,(x 3). A further example is the stuck boolean configuration 5 < y,(x 2). Note that the configuration x < y,(x 2) is not stuck, but reduces to a stuck state.

22 Models of Computation, Normalisation The evaluation relations e and b are normalising. The execution relation c is not normalising. Slide 24 Specifically, we can have infinite loops. For example, the program (while true do skip) loops forever. Let s be any state. We have the execution path while true do skip,s 3 c while true do skip,s where 3 c means three steps. Hence, we have an infinite execution path. Theorem For any state s, there is no s such that while true do skip,s skip,s Proof Let us first calculate a few steps of the evaluation of this program: while true do skip, s if true then (skip; while true do skip) else skip, s skip; while true do skip, s while true do skip, s As you can see, it seems unlikely that this will ever get anywhere. But we need to prove this! Suppose to the contrary that it is possible for while true do skip,s skip,s, and let n be the number of steps taken for this evaluation. Note that, since the semantics is deterministic, this number n is well-defined. Again, determinacy tells us that the first three steps of the evaluation must be the steps we calculated above, and then the remaining n 3 steps of the

23 Models of Computation, evaluation show that while true do skip,s skip,s, which is not possible, since this takes n steps! This is a contradiction, so we deduce that no such evaluation exists. This result demonstrates that inherent in our language is the fact that some computations do not yield final answers. It fits our intuition about how programs work! Discussion: Side-effects and Evaluation Order Something worth noticing about our language is that the only phrases which affect the state directly are the assignment commands. Assignments are always found inside commands rather than inside expressions or booleans. Furthermore, commands are strictly sequenced by the ; operator. This means that there is never any confusion about what should be in the state at a given time, and none of the decisions we have made about the order of evaluation affect the final answer configurations. In more sophisticated languages, this situation can be compromised. For example, commands can often creep into the language of expressions via constructs like a return command. For example, we think of do x := x + 1 return x, as an expression because it returns a numerical result. However, it does have a side-effect on the state. We can also write composite expressions such as (do x := x + 1 return x) + (do x := x 2 return x) It is now vital that we pay close attention to the semantics of addition. Does + evaluate its argument left-to-right or right-to-left? Exercise Write down the sets of rules corresponding to each evaluation strategy for +, and evaluate the above in the state (x 0) under each set of rules.

24 Models of Computation, Side-effecting expressions If we allow expressions like Slide 25 do x := x + 1 return x then the result of evaluating (do x := x+1 return x)+(do x := x 2 return x) depends on the evaluation order. Strictness In the case of addition, the only reasonable choices for evaluation are left-to-right or right-to-left, although other choices do exists, such as evaluating both arguments twice! In any case, it is clear that both arguments must be evaluated at least once before the result of the addition can be calculated. Sometimes, this is not the case. For example, the logical and operator, written & in our syntax, when applied to false and any other boolean, must return false. It is therefore possible to write a semantics for & as on slide 26. In this case, the programmer really must know what the semantics is. For example, in any state false&(while true do skip; return(true)) false while (while true do skip; return(true))& false gets into an infinite loop.

25 Models of Computation, Short-circuit Semantics of & B 1 B 1 Slide 26 B 1 & B 2 B 1 & B 2 false&b 2 false true&b 2 B 2 Strictness Slide 27 An operation is called strict in one of its arguments if it always needs to evaluate that argument. Addition is strict in both arguments. The semantics of & given in slide 26 makes & a left-strict operator. It is non-strict in its right argument.

26 Models of Computation, Procedure and Method Calls Though we will not formally consider languages with procedures or method calls, we can informally apply the ideas given in this course to obtain a deeper understanding of such languages. The issues of strictness and evaluation order crop up again and again. For example, in a method like void amethod(int x){ return; } the argument x is never used. So in a call such as amethod(do y := y + 1 return y) do we need to evaluate the argument? Clearly, the outcome of a program containing a call like this will depend on the semantic decision we make here. In a method call such as anothermethod(exp1, exp2) in what order should we evaluate the arguments, if they are used? If an argument is used twice in the body of the method, should it be evaluated twice? There are plenty of different semantic decisions to be made here. Here are some popular choices. Evaluate all the arguments, left to right, and use the result of this evaluation each time the argument is used. This is called call-by-value, and is roughly what Java and ML do. Replace each use of an argument in the method body by the text of the actual parameter the programmer has supplied, so that each time the argument is called, it is re-evaluated. This is called call-by-name, and is what Algol 60 did (does?). Evaluate an argument only when it is actually used in the body of the method, but then remember the result so that if the argument is used again, it is not re-evaluated. The is called call-by-need, and is what Haskell does. Exercise Write the code of a method mymethod(exp1, exp2) and a particular call to this method, such that the three evaluation strategies above all give different results.

27 Models of Computation, The purpose of this discussion is to alert you to the fact that there may be several reasonable, but nonetheless crucially different, choices to be made about the semantics of various language constructs. One role of a formal study of semantics is to help discover where such choices and ambiguities lie, and to resolve them in a fixed, clear and well-documented way.

### Mathematical Induction

Mathematical Induction In logic, we often want to prove that every member of an infinite set has some feature. E.g., we would like to show: N 1 : is a number 1 : has the feature Φ ( x)(n 1 x! 1 x) How

### Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 2

CS 70 Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 2 Proofs Intuitively, the concept of proof should already be familiar We all like to assert things, and few of us

### [Refer Slide Time: 05:10]

Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

### CHAPTER 3 Numbers and Numeral Systems

CHAPTER 3 Numbers and Numeral Systems Numbers play an important role in almost all areas of mathematics, not least in calculus. Virtually all calculus books contain a thorough description of the natural,

### Formal Languages and Automata Theory - Regular Expressions and Finite Automata -

Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March

### 8 Divisibility and prime numbers

8 Divisibility and prime numbers 8.1 Divisibility In this short section we extend the concept of a multiple from the natural numbers to the integers. We also summarize several other terms that express

### Chapter 6 Finite sets and infinite sets. Copyright 2013, 2005, 2001 Pearson Education, Inc. Section 3.1, Slide 1

Chapter 6 Finite sets and infinite sets Copyright 013, 005, 001 Pearson Education, Inc. Section 3.1, Slide 1 Section 6. PROPERTIES OF THE NATURE NUMBERS 013 Pearson Education, Inc.1 Slide Recall that denotes

### WRITING PROOFS. Christopher Heil Georgia Institute of Technology

WRITING PROOFS Christopher Heil Georgia Institute of Technology A theorem is just a statement of fact A proof of the theorem is a logical explanation of why the theorem is true Many theorems have this

### CHAPTER 2. Logic. 1. Logic Definitions. Notation: Variables are used to represent propositions. The most common variables used are p, q, and r.

CHAPTER 2 Logic 1. Logic Definitions 1.1. Propositions. Definition 1.1.1. A proposition is a declarative sentence that is either true (denoted either T or 1) or false (denoted either F or 0). Notation:

### 13 Infinite Sets. 13.1 Injections, Surjections, and Bijections. mcs-ftl 2010/9/8 0:40 page 379 #385

mcs-ftl 2010/9/8 0:40 page 379 #385 13 Infinite Sets So you might be wondering how much is there to say about an infinite set other than, well, it has an infinite number of elements. Of course, an infinite

### Students in their first advanced mathematics classes are often surprised

CHAPTER 8 Proofs Involving Sets Students in their first advanced mathematics classes are often surprised by the extensive role that sets play and by the fact that most of the proofs they encounter are

### The PCAT Programming Language Reference Manual

The PCAT Programming Language Reference Manual Andrew Tolmach and Jingke Li Dept. of Computer Science Portland State University (revised October 8, 2004) 1 Introduction The PCAT language (Pascal Clone

### 3. Mathematical Induction

3. MATHEMATICAL INDUCTION 83 3. Mathematical Induction 3.1. First Principle of Mathematical Induction. Let P (n) be a predicate with domain of discourse (over) the natural numbers N = {0, 1,,...}. If (1)

### MATH10040 Chapter 2: Prime and relatively prime numbers

MATH10040 Chapter 2: Prime and relatively prime numbers Recall the basic definition: 1. Prime numbers Definition 1.1. Recall that a positive integer is said to be prime if it has precisely two positive

### CHAPTER 5: MODULAR ARITHMETIC

CHAPTER 5: MODULAR ARITHMETIC LECTURE NOTES FOR MATH 378 (CSUSM, SPRING 2009). WAYNE AITKEN 1. Introduction In this chapter we will consider congruence modulo m, and explore the associated arithmetic called

### Practice Problems Solutions

Practice Problems Solutions The problems below have been carefully selected to illustrate common situations and the techniques and tricks to deal with these. Try to master them all; it is well worth it!

### Logic, Sets, and Proofs

Logic, Sets, and Proofs David A. Cox and Catherine C. McGeoch Amherst College 1 Logic Logical Statements. A logical statement is a mathematical statement that is either true or false. Here we denote logical

### MATH20302 Propositional Logic. Mike Prest School of Mathematics Alan Turing Building Room

MATH20302 Propositional Logic Mike Prest School of Mathematics Alan Turing Building Room 1.120 mprest@manchester.ac.uk April 10, 2015 Contents I Propositional Logic 3 1 Propositional languages 4 1.1 Propositional

### COLORED GRAPHS AND THEIR PROPERTIES

COLORED GRAPHS AND THEIR PROPERTIES BEN STEVENS 1. Introduction This paper is concerned with the upper bound on the chromatic number for graphs of maximum vertex degree under three different sets of coloring

### Elementary Number Theory We begin with a bit of elementary number theory, which is concerned

CONSTRUCTION OF THE FINITE FIELDS Z p S. R. DOTY Elementary Number Theory We begin with a bit of elementary number theory, which is concerned solely with questions about the set of integers Z = {0, ±1,

### Induction. Margaret M. Fleck. 10 October These notes cover mathematical induction and recursive definition

Induction Margaret M. Fleck 10 October 011 These notes cover mathematical induction and recursive definition 1 Introduction to induction At the start of the term, we saw the following formula for computing

### CS 103X: Discrete Structures Homework Assignment 3 Solutions

CS 103X: Discrete Structures Homework Assignment 3 s Exercise 1 (20 points). On well-ordering and induction: (a) Prove the induction principle from the well-ordering principle. (b) Prove the well-ordering

### Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical

### COMP 250 Fall Mathematical induction Sept. 26, (n 1) + n = n + (n 1)

COMP 50 Fall 016 9 - Mathematical induction Sept 6, 016 You will see many examples in this course and upcoming courses of algorithms for solving various problems It many cases, it will be obvious that

### Mathematical Induction

Mathematical Induction (Handout March 8, 01) The Principle of Mathematical Induction provides a means to prove infinitely many statements all at once The principle is logical rather than strictly mathematical,

### (Refer Slide Time: 1:41)

Discrete Mathematical Structures Dr. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture # 10 Sets Today we shall learn about sets. You must

### Fractions and Decimals

Fractions and Decimals Tom Davis tomrdavis@earthlink.net http://www.geometer.org/mathcircles December 1, 2005 1 Introduction If you divide 1 by 81, you will find that 1/81 =.012345679012345679... The first

### Math 4310 Handout - Quotient Vector Spaces

Math 4310 Handout - Quotient Vector Spaces Dan Collins The textbook defines a subspace of a vector space in Chapter 4, but it avoids ever discussing the notion of a quotient space. This is understandable

### Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy

Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Kim S. Larsen Odense University Abstract For many years, regular expressions with back referencing have been used in a variety

### Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No.

Database Management System Dr. S. Srinath Department of Computer Science & Engineering Indian Institute of Technology, Madras Lecture No. # 8 Functional Dependencies and Normal Forms Two different kinds

### Chapter 6: Formal Proofs and Boolean Logic

Chapter 6: Formal Proofs and Boolean Logic The Fitch program, like the system F, uses introduction and elimination rules. The ones we ve seen so far deal with the logical symbol =. The next group of rules

### Basic syntax of quantification in English

Basic syntax of quantifiion in English Jeff peaks phil 43916 eptember 15, 2014 1 The problem posed by quantified sentences.................... 1 2 Basic syntactic egories for quantifiion in English..............

### To formulate more complex mathematical statements, we use the quantifiers there exists, written, and for all, written. If P(x) is a predicate, then

Discrete Math in CS CS 280 Fall 2005 (Kleinberg) Quantifiers 1 Quantifiers To formulate more complex mathematical statements, we use the quantifiers there exists, written, and for all, written. If P(x)

### 1. R In this and the next section we are going to study the properties of sequences of real numbers.

+a 1. R In this and the next section we are going to study the properties of sequences of real numbers. Definition 1.1. (Sequence) A sequence is a function with domain N. Example 1.2. A sequence of real

### 4 Domain Relational Calculus

4 Domain Relational Calculus We now present two relational calculi that we will compare to RA. First, what is the difference between an algebra and a calculus? The usual story is that the algebra RA is

### Introduction to mathematical arguments

Introduction to mathematical arguments (background handout for courses requiring proofs) by Michael Hutchings A mathematical proof is an argument which convinces other people that something is true. Math

### Discrete Mathematics

Slides for Part IA CST 2014/15 Discrete Mathematics Prof Marcelo Fiore Marcelo.Fiore@cl.cam.ac.uk What are we up to? Learn to read and write, and also work with, mathematical

### Fundamentals of Mathematics Lecture 6: Propositional Logic

Fundamentals of Mathematics Lecture 6: Propositional Logic Guan-Shieng Huang National Chi Nan University, Taiwan Spring, 2008 1 / 39 Connectives Propositional Connectives I 1 Negation: (not A) A A T F

### Lecture 3. Mathematical Induction

Lecture 3 Mathematical Induction Induction is a fundamental reasoning process in which general conclusion is based on particular cases It contrasts with deduction, the reasoning process in which conclusion

### DISCRETE MATHEMATICS W W L CHEN

DISCRETE MATHEMATICS W W L CHEN c W W L Chen, 1982, 2008. This chapter originates from material used by the author at Imperial College, University of London, between 1981 and 1990. It is available free

### diffy boxes (iterations of the ducci four number game) 1

diffy boxes (iterations of the ducci four number game) 1 Peter Trapa September 27, 2006 Begin at the beginning and go on till you come to the end: then stop. Lewis Carroll Consider the following game.

### x if x 0, x if x < 0.

Chapter 3 Sequences In this chapter, we discuss sequences. We say what it means for a sequence to converge, and define the limit of a convergent sequence. We begin with some preliminary results about the

### Functional Programming

FP 2005 1.1 3 Functional Programming WOLFRAM KAHL kahl@mcmaster.ca Department of Computing and Software McMaster University FP 2005 1.2 4 What Kinds of Programming Languages are There? Imperative telling

### A set is a Many that allows itself to be thought of as a One. (Georg Cantor)

Chapter 4 Set Theory A set is a Many that allows itself to be thought of as a One. (Georg Cantor) In the previous chapters, we have often encountered sets, for example, prime numbers form a set, domains

### 8.7 Mathematical Induction

8.7. MATHEMATICAL INDUCTION 8-135 8.7 Mathematical Induction Objective Prove a statement by mathematical induction Many mathematical facts are established by first observing a pattern, then making a conjecture

### Regular Languages and Finite Automata

Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a

### Chapter 7: Functional Programming Languages

Chapter 7: Functional Programming Languages Aarne Ranta Slides for the book Implementing Programming Languages. An Introduction to Compilers and Interpreters, College Publications, 2012. Fun: a language

### WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT?

WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT? introduction Many students seem to have trouble with the notion of a mathematical proof. People that come to a course like Math 216, who certainly

### Taylor Polynomials and Taylor Series Math 126

Taylor Polynomials and Taylor Series Math 26 In many problems in science and engineering we have a function f(x) which is too complicated to answer the questions we d like to ask. In this chapter, we will

### 4. FIRST-ORDER LOGIC

4. FIRST-ORDER LOGIC Contents 4.1: Splitting the atom: names, predicates and relations 4.2: Structures 4.3: Quantification:, 4.4: Syntax 4.5: Semantics 4.6: De Morgan s laws for and 4.7: Truth trees for

### MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.

MATH10212 Linear Algebra Textbook: D. Poole, Linear Algebra: A Modern Introduction. Thompson, 2006. ISBN 0-534-40596-7. Systems of Linear Equations Definition. An n-dimensional vector is a row or a column

### It is time to prove some theorems. There are various strategies for doing

CHAPTER 4 Direct Proof It is time to prove some theorems. There are various strategies for doing this; we now examine the most straightforward approach, a technique called direct proof. As we begin, it

### CS 341 Homework 9 Languages That Are and Are Not Regular

CS 341 Homework 9 Languages That Are and Are Not Regular 1. Show that the following are not regular. (a) L = {ww R : w {a, b}*} (b) L = {ww : w {a, b}*} (c) L = {ww' : w {a, b}*}, where w' stands for w

### COMPUTER SCIENCE TRIPOS

CST.98.5.1 COMPUTER SCIENCE TRIPOS Part IB Wednesday 3 June 1998 1.30 to 4.30 Paper 5 Answer five questions. No more than two questions from any one section are to be answered. Submit the answers in five

### Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

### Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products

Chapter 3 Cartesian Products and Relations The material in this chapter is the first real encounter with abstraction. Relations are very general thing they are a special type of subset. After introducing

### Section 1. Statements and Truth Tables. Definition 1.1: A mathematical statement is a declarative sentence that is true or false, but not both.

M3210 Supplemental Notes: Basic Logic Concepts In this course we will examine statements about mathematical concepts and relationships between these concepts (definitions, theorems). We will also consider

### Mathematical induction: variants and subtleties

Mathematical induction: variants and subtleties October 29, 2010 Mathematical induction is one of the most useful techniques for solving problems in mathematics. I m assuming you re familiar with the basic

### 2. Methods of Proof Types of Proofs. Suppose we wish to prove an implication p q. Here are some strategies we have available to try.

2. METHODS OF PROOF 69 2. Methods of Proof 2.1. Types of Proofs. Suppose we wish to prove an implication p q. Here are some strategies we have available to try. Trivial Proof: If we know q is true then

### 5544 = 2 2772 = 2 2 1386 = 2 2 2 693. Now we have to find a divisor of 693. We can try 3, and 693 = 3 231,and we keep dividing by 3 to get: 1

MATH 13150: Freshman Seminar Unit 8 1. Prime numbers 1.1. Primes. A number bigger than 1 is called prime if its only divisors are 1 and itself. For example, 3 is prime because the only numbers dividing

### This asserts two sets are equal iff they have the same elements, that is, a set is determined by its elements.

3. Axioms of Set theory Before presenting the axioms of set theory, we first make a few basic comments about the relevant first order logic. We will give a somewhat more detailed discussion later, but

### Section 3 Sequences and Limits

Section 3 Sequences and Limits Definition A sequence of real numbers is an infinite ordered list a, a 2, a 3, a 4,... where, for each n N, a n is a real number. We call a n the n-th term of the sequence.

### So let us begin our quest to find the holy grail of real analysis.

1 Section 5.2 The Complete Ordered Field: Purpose of Section We present an axiomatic description of the real numbers as a complete ordered field. The axioms which describe the arithmetic of the real numbers

### Sequences and Convergence in Metric Spaces

Sequences and Convergence in Metric Spaces Definition: A sequence in a set X (a sequence of elements of X) is a function s : N X. We usually denote s(n) by s n, called the n-th term of s, and write {s

### We now explore a third method of proof: proof by contradiction.

CHAPTER 6 Proof by Contradiction We now explore a third method of proof: proof by contradiction. This method is not limited to proving just conditional statements it can be used to prove any kind of statement

### The Halting Problem is Undecidable

185 Corollary G = { M, w w L(M) } is not Turing-recognizable. Proof. = ERR, where ERR is the easy to decide language: ERR = { x { 0, 1 }* x does not have a prefix that is a valid code for a Turing machine

### Chapter 5: Sequential Circuits (LATCHES)

Chapter 5: Sequential Circuits (LATCHES) Latches We focuses on sequential circuits, where we add memory to the hardware that we ve already seen Our schedule will be very similar to before: We first show

### Stanford Math Circle: Sunday, May 9, 2010 Square-Triangular Numbers, Pell s Equation, and Continued Fractions

Stanford Math Circle: Sunday, May 9, 00 Square-Triangular Numbers, Pell s Equation, and Continued Fractions Recall that triangular numbers are numbers of the form T m = numbers that can be arranged in

### 8 Primes and Modular Arithmetic

8 Primes and Modular Arithmetic 8.1 Primes and Factors Over two millennia ago already, people all over the world were considering the properties of numbers. One of the simplest concepts is prime numbers.

### Homework 5 Solutions

Homework 5 Solutions 4.2: 2: a. 321 = 256 + 64 + 1 = (01000001) 2 b. 1023 = 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = (1111111111) 2. Note that this is 1 less than the next power of 2, 1024, which

### Prime Numbers. Chapter Primes and Composites

Chapter 2 Prime Numbers The term factoring or factorization refers to the process of expressing an integer as the product of two or more integers in a nontrivial way, e.g., 42 = 6 7. Prime numbers are

### Discrete Mathematics and Probability Theory Fall 2009 Satish Rao,David Tse Note 11

CS 70 Discrete Mathematics and Probability Theory Fall 2009 Satish Rao,David Tse Note Conditional Probability A pharmaceutical company is marketing a new test for a certain medical condition. According

### The Foundations: Logic and Proofs. Chapter 1, Part III: Proofs

The Foundations: Logic and Proofs Chapter 1, Part III: Proofs Rules of Inference Section 1.6 Section Summary Valid Arguments Inference Rules for Propositional Logic Using Rules of Inference to Build Arguments

### LESSON 1 PRIME NUMBERS AND FACTORISATION

LESSON 1 PRIME NUMBERS AND FACTORISATION 1.1 FACTORS: The natural numbers are the numbers 1,, 3, 4,. The integers are the naturals numbers together with 0 and the negative integers. That is the integers

### Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.

Elementary Number Theory and Methods of Proof CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.edu/~cse215 1 Number theory Properties: 2 Properties of integers (whole

### Mathematical Induction. Mary Barnes Sue Gordon

Mathematics Learning Centre Mathematical Induction Mary Barnes Sue Gordon c 1987 University of Sydney Contents 1 Mathematical Induction 1 1.1 Why do we need proof by induction?.... 1 1. What is proof by

### Topology and Convergence by: Daniel Glasscock, May 2012

Topology and Convergence by: Daniel Glasscock, May 2012 These notes grew out of a talk I gave at The Ohio State University. The primary reference is [1]. A possible error in the proof of Theorem 1 in [1]

### CHAPTER II THE LIMIT OF A SEQUENCE OF NUMBERS DEFINITION OF THE NUMBER e.

CHAPTER II THE LIMIT OF A SEQUENCE OF NUMBERS DEFINITION OF THE NUMBER e. This chapter contains the beginnings of the most important, and probably the most subtle, notion in mathematical analysis, i.e.,

### Introduction to Proofs

Chapter 1 Introduction to Proofs 1.1 Preview of Proof This section previews many of the key ideas of proof and cites [in brackets] the sections where they are discussed thoroughly. All of these ideas are

### 31 is a prime number is a mathematical statement (which happens to be true).

Chapter 1 Mathematical Logic In its most basic form, Mathematics is the practice of assigning truth to welldefined statements. In this course, we will develop the skills to use known true statements to

### MATH 289 PROBLEM SET 1: INDUCTION. 1. The induction Principle The following property of the natural numbers is intuitively clear:

MATH 89 PROBLEM SET : INDUCTION The induction Principle The following property of the natural numbers is intuitively clear: Axiom Every nonempty subset of the set of nonnegative integers Z 0 = {0,,, 3,

### the lemma. Keep in mind the following facts about regular languages:

CPS 2: Discrete Mathematics Instructor: Bruce Maggs Assignment Due: Wednesday September 2, 27 A Tool for Proving Irregularity (25 points) When proving that a language isn t regular, a tool that is often

### Algorithms are the threads that tie together most of the subfields of computer science.

Algorithms Algorithms 1 Algorithms are the threads that tie together most of the subfields of computer science. Something magically beautiful happens when a sequence of commands and decisions is able to

### Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras

Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture No. # 31 Recursive Sets, Recursively Innumerable Sets, Encoding

### Pretty-big-step semantics

Pretty-big-step semantics Arthur Charguéraud INRIA October 2012 1 / 34 Motivation Formalization of JavaScript with Sergio Maeis, Daniele Filaretti, Alan Schmitt, Martin Bodin. Previous work: Semi-formal

### Cosmological Arguments for the Existence of God S. Clarke

Cosmological Arguments for the Existence of God S. Clarke [Modified Fall 2009] 1. Large class of arguments. Sometimes they get very complex, as in Clarke s argument, but the basic idea is simple. Lets

### Series Convergence Tests Math 122 Calculus III D Joyce, Fall 2012

Some series converge, some diverge. Series Convergence Tests Math 22 Calculus III D Joyce, Fall 202 Geometric series. We ve already looked at these. We know when a geometric series converges and what it

### CHAPTER 3. Methods of Proofs. 1. Logical Arguments and Formal Proofs

CHAPTER 3 Methods of Proofs 1. Logical Arguments and Formal Proofs 1.1. Basic Terminology. An axiom is a statement that is given to be true. A rule of inference is a logical rule that is used to deduce

### Python for Everybody. Exploring Data Using Python 3. Charles R. Severance

Python for Everybody Exploring Data Using Python 3 Charles R. Severance 4.10. FRUITFUL FUNCTIONS AND VOID FUNCTIONS 51 4.10 Fruitful functions and void functions Some of the functions we are using, such

### MODULAR ARITHMETIC. a smallest member. It is equivalent to the Principle of Mathematical Induction.

MODULAR ARITHMETIC 1 Working With Integers The usual arithmetic operations of addition, subtraction and multiplication can be performed on integers, and the result is always another integer Division, on

### Style Guide For Writing Mathematical Proofs

Style Guide For Writing Mathematical Proofs Adapted by Lindsey Shorser from materials by Adrian Butscher and Charles Shepherd A solution to a math problem is an argument. Therefore, it should be phrased

### 3 Monomial orders and the division algorithm

3 Monomial orders and the division algorithm We address the problem of deciding which term of a polynomial is the leading term. We noted above that, unlike in the univariate case, the total degree does

### CHAPTER 3. Sequences. 1. Basic Properties

CHAPTER 3 Sequences We begin our study of analysis with sequences. There are several reasons for starting here. First, sequences are the simplest way to introduce limits, the central idea of calculus.

### Direct Proofs. CS 19: Discrete Mathematics. Direct Proof: Example. Indirect Proof: Example. Proofs by Contradiction and by Mathematical Induction

Direct Proofs CS 19: Discrete Mathematics Amit Chakrabarti Proofs by Contradiction and by Mathematical Induction At this point, we have seen a few examples of mathematical proofs. These have the following

### Mathematical Logic and its Application to. Computer Science. Lecture Notes

Mathematical Logic and its Application to Computer Science Lecture Notes Eitan Farchi farchi@il.ibm.com Yochai Ben-Chaim yochaib@il.ibm.com March 3, 2010 1 Contents 1 Introduction 9 1.1 The Knaves and

### CHAPTER 2. Inequalities

CHAPTER 2 Inequalities In this section we add the axioms describe the behavior of inequalities (the order axioms) to the list of axioms begun in Chapter 1. A thorough mastery of this section is essential

### CMPSCI 250: Introduction to Computation. Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013

CMPSCI 250: Introduction to Computation Lecture #19: Regular Expressions and Their Languages David Mix Barrington 11 April 2013 Regular Expressions and Their Languages Alphabets, Strings and Languages

### Student Outcomes. Lesson Notes. Classwork. Discussion (10 minutes)

NYS COMMON CORE MATHEMATICS CURRICULUM Lesson 5 8 Student Outcomes Students know the definition of a number raised to a negative exponent. Students simplify and write equivalent expressions that contain