An introduction to static analysis

Size: px
Start display at page:

Download "An introduction to static analysis"

Transcription

1 1 An introduction to static analysis Eric Goubault Modelisation and Analysis of Systems in Interaction Laboratory 8th of april 2008

2 Roadmap Validation, verication, compilation? A short demo with INTERPROC/APRON to see what we want to get! Formalisation for simple safety properties: collecting semantics resolution of the semantic equations (a bit of order theory) Abstractions for practical calculations an example: sign analysis simple formalisation by Galois connections To go further interval analysis relational analyses... short demo with INTERPROC/APRON 2

3 Compilation and verication 3 [egoubault@is Cours07]> more f.c int f(int i) { int j,k; k = i+j; j = 2; return k; } [egoubault@is Cours07]> gcc -c f.c -O -Wall f.c: In function `f': f.c:3: warning: `j' might be used uninitialized in this function

4 But... 4 [egoubault@is Cours07]> more g.c int g() { int j[10]; return j[12]; } [egoubault@is Cours07]> gcc -c g.c -O -Wall [egoubault@is Cours07]> The verications done by gcc are very basic... complementary tools for validation!

5 Extensions of these methods for guaranteed correct software: formal methods 5 Formal specications (B, Z etc.) Proof (essentially, partial correctness proof): ex. Hoare Logics (interaction with the user) Model-Checking: Verication of rened temporal properties on parallel programs Static Analysis: fully automatic method to nd bugs or synthetise proof terms

6 Example of validation 6 fft(complex_array_ref a,int n) { complex_array_ref b[n/2], c[n/2]; if (n > 2) { for (i=0 ; i < n ; i=i+2) { b[i/2] = a[i]; c[i/2] = a[i+1]; } fft(b,n/2); fft(c,n/2); for (i=0 ; i < n ; i=i+1) a[i] = F1(n)*b[i] + F2(n)*c[i]; } else { a[0] = g*a[0] + d*a[1]; a[1] = a[0] - 2*d*a[1]; } }

7 Validate? 7 Mathematical proof, not test; but of what? No bug at execution time (division by zero, out of bounds array dereference, null dereference, overows etc.) Parseval? a [i] 2 = i i a[i] 2 Equality very hard to achieve... because of oating-point numbers ( real numbers). Precision drift? Functional proof, in general not achievable...

8 Expected results 8 Find in an automatic and guaranteed manner: (1) Out of bounds array dereference (in the else statement) only for arrays whose size is not a power of 2! [should crash, or give an incoherent result; Astrée, Polyspace, typically] (2) Under conditions on the input signal, no overow (Astrée, Polyspace, typically; also FLUCTUAT) (3) Under conditions, to give bounds for the dierence between a real number calculation and the oating-point computation... (see our analyser FLUCTUAT) characterisation of reachable values for all variables (invariants) at each control point. [there are other general properties than these safety properties: liveness properties]

9 In order to do this (1)... 9 dim a=n,n=2^k,k>0 fft(a,n) { cplx b[n/2], c[n/2]; if (n > 2) { for (i=0;i<n;i=i+2) { b[i/2]=a[i]; i+1=2j+1<=n and n=2^k c[i/2]=a[i+1]; } implies i+1<n fft(b,n/2); fft(c,n/2); for (i=0;i<n;i=i+1) a[i]=f1(n)*b[i]+f2(n)*c[i];} else { a[0]=g*a[0]+d*a[1]; n=2 (n=2^j, 0<=j<=k) a[1]=a[0]-2*d*a[1]; } }

10 A short demo of INTERPROC/APRON 10...

11 Collecting semantics - informally We construct the control ow graph of a program, as being the transition system (S, i, E, Tran): S is the set of control points of the program (one by syntactic line for us - indicated in the text by [i]) i is the initial control point E = {x = expr Aexp} Bexp We dene a certain number of rules for the transitions 11

12 Example void main() { // [0] int x=[-100,50]; // [1] while [2] (x<100) { [3] x=x+1; // [4] } // [5] } Executions of the program correspond to dipaths on the graph (orbits of this discrete dynamical system), on which the environmnent (σ : Loc Z) is modied 12

13 Collecting semantics - informally 13 The environments now collect the values, for all paths, at each control point An environment is an element of (Loc Z) At each state s S, we want to compute such an environment σ

14 Collecting semantics - intuitively 14 We start from the control ow graph (expressed as a transition system T = (S, i, E, Tran)) We associate to each control point s i of T an equation in associated variables S i, which represent the sets of values that program variables can take, at control points s i : S i = [[t]]s j s j S (s j,t,s i ) Tran where [[t]] is the interpretation of the transition t seen as a function from the set of values of variables to itself The solutions S i to these equations are called the invariants at control points s i (it is a property which is always true for all possible executions)

15 Example 15 void main() { // [0] int x=[-100,50]; // [1] while [2] (x<100) { // [3] x=x+1; // [4] } // [5] } x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2

16 Partial orders, lattices, completeness etc. 16 How can we give a meaning to xed point equations? The fundamental notion is the one of successive approximations, ordered by a partial order

17 Partial order 17 A partial order (P, ) is composed of: a set P and a binary relation P P such that is reexive: p P, p p is transitive: p, q, r P, p q&q r is anti-symetric: p, q P, p q&q r = p r = p = q Ex.: ( (S), ) Notice: isomorphic to the boolean lattice of rst-order propositional logics (with atoms being predicates on one integer value). is =!

18 Upper bounds etc. 18 For X P: p is an upper bound of X if q X, q p p is a (the!) least upper bound (lub, sup etc.) if: p is an upper bound of X for all upper bounds q of X, p q the least upper bound, if it exists, is denoted X similarly for the notion of lower bound, the greatest lower bound (glb, inf etc.), is denoted X A lattice is a partial order admitting a lub and a glb for all X containing two elements (hence for any non empty nite set X ) Ex.: in ( (S), ), all X admit a lub (the classical set-theoretic union) and a glb (the classical set-theoretic intersection). It is a particular kind of lattice.

19 Chains, completeness A chain of P is p 0 p 1... p n An ω-chain of P if p 0 p 1... p n... A partial order is a cpo (Complete Partial Order) if for all ω-chains P, P admits a lub in the partial order In general, we suppose that a cpo also has a minimal element, denoted, i.e. p P, p A lattice is a complete lattice if all subsets admit a lub (and hence a glb). Ex.: ( (S), ) is a complete lattice ( =, = S). 19

20 Functionals 20 A function f : D E between two cpos D et E is increasing i d, d D, d d f (d) f (d ) f increasing is continuous i for all chains d 0 d 1... d n... of D, we have: ( ) f (d n ) = f d n n N n N

21 Fixed points - resolution of equations 21 Let f : D D increasing on a partial order D. A xed point of f is an element d of D such that f (d) = d. A post-xed point of f is an element d of D such that f (d) d A pre-xed point of f is an element d of D such that d f (d)

22 Resolution of equations 22 (1) Let f : D D be an increasing function on a complete lattice D. Then f admits at least a xed point. Furthermore, the set of xed points of f is a complete lattice, thus there is a least xed point (noted lfp(f )) and a greatest xed point (noted gfp(f )). (2) Let f : D D be a continuous function on a cpo D (with a element). Then, x(f ) = f n ( ) n N is the smallest xed point of f, lfp(f ) [Kleene iteration].

23 Resolution of the semantic equations for our example 23 We compute the Kleene (x) iteration for the functional: F x 0 x 1 x 2 x 3 x 4 x 5 = [ 100, 50] x 1 x 4 ], 99] x 2 x 3 + [1, 1] [100, + [ x 2 where we wrote x i as denoting the set of possible values at control point i.

24 Resolution of semantic equations 24 We begin with x i = (1 i 5) We compute the Kleene iteration... slightly ameliorated (chaotic - similar to Gauss-Seidl versus Jacobi)

25 Iteration 1 25 x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2 x0 1 = x1 1 = [ 100, 50] x2 1 = [ 100, 50] x3 1 = ], 99] [ 100, 50] = [ 100, 50] x4 1 = [ 100, 50] + [1, 1] = [ 99, 51] x5 1 = [100, + [ [ 100, 50] =

26 Iteration i + 1 (i < 50) [Kleene] 26 x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2 x i+1 0 = x i+1 1 = [ 100, 50] x i+1 2 = [ 100, 50 + i] x i+1 3 = ], 99] [ 100, 50 + i] = [ 100, 50 + i] x i+1 4 = [ i, 50 + i] + [1, 1] = [ 99, 50 + i + 1] x i+1 5 = [100, + [ [ 99, 50 + i + 1] =

27 Iteration x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2 x0 100 = x1 100 = [ 100, 50] x2 100 = [ 100, 100] x2 100 = ], 99] ([ 100, 100]) = [ 100, 99] x3 100 = [ 100, 99] + [1, 1] = [ 99, 100] x4 100 = [100, + [ ([ 99, 100] = [100, 100]

28 Partial conclusion 28 We were lucky, as there is no reason that we can solve these semantic equations in general in nite time (undecidability results) abstract the semantics! (cf. theory of abstract interpretation, P. et R. Cousot)

29 Notion of approximation of properties 29 Example, the rule of signs: Intuitive notion of a rule of signs (where? means indeterminate sign): add + - mult ? ? How can we formalize this? [does correspond to restricting proof principles to a smaller set of predicates and consequences]

30 Galois connections - informally, for signs 30 + denotes the set of natural numbers denotes the set of opposites of natural numbers We are making approximations: what can we say about the addition of + with? we should be able to return a value I do not know We write this value: (value which will be the maximal element of the lattice of signs) denotes the set of relative integers (Z)

31 Galois connections - informally, for signs 31 In order to have a complete lattice and a Galois connection... The lattice of signs is written: (S, )

32 Galois connections - formally 32 Let C be a complete lattice of concrete properties: (e.g. ( (Z), )) Let A be a complete lattice of abstract properties: (e.g. (S, )) α : C A (abstraction) and γ : A C (concretisation) two monotonic functions (we could forget this hypothesis) such that α(x) A y x C γ(y)

33 Galois connection in the case of signs 33 Here: γ( ) = γ(0) = {0} γ(+) = N; γ( ) = N; γ( ) = Z

34 Galois connection for signs 34 Here: α( ) = α({0}) = 0 α(s) = + if S contains only positive values (and at least a strictly positive one) if S only contains negative values (and at least a strictly negative one) if S contains at least a negative (or zero) value and a distinct positive (or zero) value

35 Galois connections 35 We can check that we have the following properties: (1) α γ(x) A x (2) y C γ α(y) In fact, we even have in the case of signs: α γ(x) = x (Galois insertion). (1) or (2) are equivalent conditions to the fact that (α, γ) is a Galois connection

36 Galois connections 36 α and γ are said to be quasi-inverses: they are almost bijections as for inverses, one determines the other: α(x) = {y x C γ(y)} γ(x) = {y α(y) A x} In other terms: α give the most precise abstract value representing a given concrete property γ gives the semantics of abstract values, in terms of concrete properties

37 Abstract transfer functions 37 The abstract functions corresponding to +, - etc. can in fact be determined by calculus, given a Galois connection (α, γ) between a concrete domain C and an abstract domain A: For all concrete functionals F : C C (for example, the collecting semantics), we dene an abstract functional F : A A by F (y) = α F γ(y) It is the best possible abstraction of F. In practice, α and/or γ are not computable (algorithmically speaking). We use in general an over-approximation F such that F (y) A F (y).

38 Fixed point transfer 38 When we have a Galois connection (α, γ) between a concrete domain C and an abstract domain A, we have the following property, for all concrete functionals F : C C: α(lfp(f )) A lfp(f ) or, equivalently: lfp(f ) C γ lfp(f ) Hence, the abstract calculus gives an over-approximation of the concrete invariants!

39 Example of a computation 39 For the same old program... we then have the following semantic equations: x 0 = x 1 = 0 x 2 = x 1 x 4 x 3 = x 2 x 4 = x 3 + [1, 1] x 5 = + x 2 where we must dene the abstract transfer function corresponding to incr(x 3 ) = x 3 + 1

40 Transfer function of incr : x x We can easily check that: incr

41 Fixed point iteration 41 We begin with x 0 i =. The rst iteration gives: x 0 = x 1 = 0 x 2 = x 1 x 4 x 3 = x 2 x 4 = x 3 + [1, 1] x 5 = + x 2 x0 1 = x1 1 = 0 x2 1 = 0 x3 1 = 0 x4 1 = + x5 1 = +

42 Fixed point iteration 42 The second iteration gives: x 0 = x 1 = 0 x 2 = x 1 x 4 x 3 = x 2 x 4 = x 3 + [1, 1] x0 2 = x1 2 = 0 x2 2 = + x3 2 = + x4 2 = + x5 2 = + x 5 = + x 2 This is the xed point! In fact, we can easily show that in the lattice of signs, we have at most three iterations before getting to the least xed point

43 Use of abstract invariants for validation 43 We have over-approximations of possibles values that variables can take, by solving systems of abstract equations. We can conclude in general for safety properties (i.e., no run time error [RTE]) of programs:

44 Partial conclusion 44 But we are still far from real static analysis based validation! Finer analysis of the ranges of variables to detect at least these RTEs: overows (for given types of variables) division by zero square root of a negative number (not in this course really... but not too far) access of an element in an array, out of bounds Simple analysis: interval analysis

45 Poset of intervals 45 We dene the poset of intervals I with bounds in R as follows: an element of I is [a, b] where a, b R and a b; or is (identied with all [a, b] with a > b); or is, identied with [, ] [a, b] [a, b] [c, d] i a c and b d

46 Lattice of intervals 46 [a, b] [c, d] = [min(a, b), max(c, d)] [a, b] [c, d] = [max(a, b), min(c, d)] Complete! [a i, b i ] = [inf i I a i, sup i I b i ] i I

47 Galois connection with ( (Z), ) 47 Dene: γ([a, b]) = {x Z a x b} γ( ) = γ( ) = Z

48 Necessarily Applying the formula: if S is empty: α(s) = α(s) = [inf S, sup S]

49 Transfer functions for expressions 49 As usual, they are strict i.e. map to, and: [a, b] + [c, d] = [a + c, b + d] [a, b] [c, d] = [a d, b c] [a, b] [c, d] = [min(ac, ad, bc, bd), max(ac, ad, bc, bd)] tests are interpreted by constraint solving within intervals etc. You know them, this is interval arithmetics.

50 Example 50 void main() { int x=[-100,50]; [1] while [2] (x<100) { [3] x=x+1; [4] } [5] } x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2

51 Iteration 1 51 x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2 x0 1 = x1 1 = [ 100, 50] x2 1 = [ 100, 50] x3 1 = ], 99] [ 100, 50] = [ 100, 50] x4 1 = [ 100, 50] + [1, 1] = [ 99, 51] x5 1 = [100, + [ [ 100, 50] =

52 Iteration i + 1 (i < 50) [Kleene] 52 x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2 x i+1 0 = x i+1 1 = [ 100, 50] x i+1 2 = [ 100, 50 + i] x i+1 3 = ], 99] [ 100, 50 + i] = [ 100, 50 + i] x i+1 4 = [ i, 50 + i] + [1, 1] = [ 99, 50 + i + 1] x i+1 5 = [100, + [ [ 99, 50 + i + 1] =

53 Iteration x 0 = x 1 = [ 100, 50] x 2 = x 1 x 4 x 3 = ], 99] x 2 x 4 = x 3 + [1, 1] x 5 = [100, + [ x 2 x0 50 = x1 50 = [ 100, 50] x2 50 = [ 100, 100] x3 50 = ], 99] ([ 100, 100]) = [ 100, 99] x4 50 = [ 100, 99] + [1, 1] = [ 99, 100] x5 50 = [100, + [ ([ 99, 100] = [100, 100]

54 Acceleration of convergence 54 Classically: Use of extrapolation operators (widening) to quickly cut down Kleene iteration sequence, to get to a postxpoint Use of a narrowing operator to get to a xpoint (not necessarily the least one though)

55 Widening 55 We take here (for the widening at point 2): { a if a c [a, b] [c, d] = [e, f ] with e = { otherwise b if d b f = otherwise, and

56 Example 56 x 10 0 = x 10 1 = [ 100, 50] x 10 2 = [ 100, 58] [ 100, 59] = [ 100, [ x 10 3 = ], 99] [ 100, ] = [ 100, 99] x 10 4 = [ 100, 99] + [1, 1] = [ 99, 100] x 10 5 = [100, + [ [ 100, ] = [100, + [

57 Narrowing 57 Here we take: { c if a = [a, b] [c, d] = [e, f ] with e = a { otherwise d if b = f = b otherwise and

58 Example 58 x 11 0 = x 11 1 = [ 100, 50] x 11 2 = [ 100, ] [ 100, 100] = [ 100, 100] x 11 3 = ], 99] [ 100, 100] = [ 100, 99] x 11 4 = [ 100, 99] + [1, 1] = [ 99, 100] x 11 5 = [100, + [ [ 100, 100] = [100, 100] This is the least xed point!

59 To go further 59 Weaker frameworks of abstractions Interprocedural analysis Backward analysis and combinations forward/backward Aliases Relational domains Better solvers for xpoint equations, iteration strategies but also optimisation methods, or policy iteration Underapproximations, test case generation (see Sylvie's talk) Modular analysis, concurrency, objects, functional programs etc.

60 Aliases 60 We have to interpret aliases, even for just nding numerical invariants. Example: int *x, *z, y; y = 1; x = &y; z = &y; y = y+1; (should nd that x and z point to the same location, with value 2) More generally, any variable can point through a series of * (a dereference path), to similar locations. Impossible to nd exactly the set of aliases in general (here, at last control point, this set is {(x, z), ( x, y)}).

61 Relational analyses: interest 61 X = [0,10]; //2 Y = [0,10]; //3 S = X-Y; //4 if (S>=2) //5 Y = Y+2; // 6 In intervals: Y in [0,12] at 6 Using relations: At 5: X-Y>=2 hence Y<=8 So at 6, Y in [0,10]

62 A partial zoo of domains 62

63 A partial zoo of domains Also: our ane arithmetic based domains (FLUCTUAT) (see to play with some of these domains!) 63

64 A last short demo of INTERPROC/APRON 64...

Numerology - A Case Study in Network Marketing Fractions

Numerology - A Case Study in Network Marketing Fractions Vers l analyse statique de programmes numériques Sylvie Putot Laboratoire de Modélisation et Analyse de Systèmes en Interaction, CEA LIST Journées du GDR et réseau Calcul, 9-10 novembre 2010 Sylvie Putot

More information

Class notes Program Analysis course given by Prof. Mooly Sagiv Computer Science Department, Tel Aviv University second lecture 8/3/2007

Class notes Program Analysis course given by Prof. Mooly Sagiv Computer Science Department, Tel Aviv University second lecture 8/3/2007 Constant Propagation Class notes Program Analysis course given by Prof. Mooly Sagiv Computer Science Department, Tel Aviv University second lecture 8/3/2007 Osnat Minz and Mati Shomrat Introduction This

More information

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

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

More information

1 if 1 x 0 1 if 0 x 1

1 if 1 x 0 1 if 0 x 1 Chapter 3 Continuity In this chapter we begin by defining the fundamental notion of continuity for real valued functions of a single real variable. When trying to decide whether a given function is or

More information

Verication by Finitary Abstraction Weizmann Institute of Sciences and Universite Joseph Fourier, Grenoble Fourth International Spin Workshop (SPIN'98) Paris 2.11.98 Joint work with: Y. Kesten Ben Gurion

More information

Undergraduate Notes in Mathematics. Arkansas Tech University Department of Mathematics

Undergraduate Notes in Mathematics. Arkansas Tech University Department of Mathematics Undergraduate Notes in Mathematics Arkansas Tech University Department of Mathematics An Introductory Single Variable Real Analysis: A Learning Approach through Problem Solving Marcel B. Finan c All Rights

More information

Static analysis of numerical programs

Static analysis of numerical programs Sylvie Putot with Eric Goubault, Franck Védrine and Karim Tekkal (Digiteo) Laboratory for the Modelling and Analysis of Interacting Systems, CEA LIST RAIM 09: 3es Rencontres Arithmétique de l Informatique

More information

facultad de informática universidad politécnica de madrid

facultad de informática universidad politécnica de madrid facultad de informática universidad politécnica de madrid On the Confluence of CHR Analytical Semantics Rémy Haemmerlé Universidad olitécnica de Madrid & IMDEA Software Institute, Spain TR Number CLI2/2014.0

More information

Abstraction as the Key for Invariant Verication Saddek Bensalem and Susanne Graf and Yassine Lakhnech VERIMAG? Centre Equation 2, avenue de Vignate F-38610 Gieres France fbensalem,graf,lakhnechg@imag.fr

More information

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation

A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris

More information

INCIDENCE-BETWEENNESS GEOMETRY

INCIDENCE-BETWEENNESS GEOMETRY INCIDENCE-BETWEENNESS GEOMETRY MATH 410, CSUSM. SPRING 2008. PROFESSOR AITKEN This document covers the geometry that can be developed with just the axioms related to incidence and betweenness. The full

More information

Chapter 3. Cartesian Products and Relations. 3.1 Cartesian Products

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

More information

Introduction to Static Analysis for Assurance

Introduction to Static Analysis for Assurance Introduction to Static Analysis for Assurance John Rushby Computer Science Laboratory SRI International Menlo Park CA USA John Rushby Static Analysis for Assurance: 1 Overview What is static analysis?

More information

µz An Efficient Engine for Fixed points with Constraints

µz An Efficient Engine for Fixed points with Constraints µz An Efficient Engine for Fixed points with Constraints Kryštof Hoder, Nikolaj Bjørner, and Leonardo de Moura Manchester University and Microsoft Research Abstract. The µz tool is a scalable, efficient

More information

Lecture 16 : Relations and Functions DRAFT

Lecture 16 : Relations and Functions DRAFT CS/Math 240: Introduction to Discrete Mathematics 3/29/2011 Lecture 16 : Relations and Functions Instructor: Dieter van Melkebeek Scribe: Dalibor Zelený DRAFT In Lecture 3, we described a correspondence

More information

MAT-71506 Program Verication: Exercises

MAT-71506 Program Verication: Exercises MAT-71506 Program Verication: Exercises Antero Kangas Tampere University of Technology Department of Mathematics September 11, 2014 Accomplishment Exercises are obligatory and probably the grades will

More information

Cartesian Products and Relations

Cartesian Products and Relations Cartesian Products and Relations Definition (Cartesian product) If A and B are sets, the Cartesian product of A and B is the set A B = {(a, b) :(a A) and (b B)}. The following points are worth special

More information

Regular Languages and Finite Automata

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

More information

Rigorous Software Development CSCI-GA 3033-009

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

More information

a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2.

a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2. Chapter 1 LINEAR EQUATIONS 1.1 Introduction to linear equations A linear equation in n unknowns x 1, x,, x n is an equation of the form a 1 x 1 + a x + + a n x n = b, where a 1, a,..., a n, b are given

More information

No: 10 04. Bilkent University. Monotonic Extension. Farhad Husseinov. Discussion Papers. Department of Economics

No: 10 04. Bilkent University. Monotonic Extension. Farhad Husseinov. Discussion Papers. Department of Economics No: 10 04 Bilkent University Monotonic Extension Farhad Husseinov Discussion Papers Department of Economics The Discussion Papers of the Department of Economics are intended to make the initial results

More information

MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.436J/15.085J Fall 2008 Lecture 5 9/17/2008 RANDOM VARIABLES

MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.436J/15.085J Fall 2008 Lecture 5 9/17/2008 RANDOM VARIABLES MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.436J/15.085J Fall 2008 Lecture 5 9/17/2008 RANDOM VARIABLES Contents 1. Random variables and measurable functions 2. Cumulative distribution functions 3. Discrete

More information

Real Roots of Univariate Polynomials with Real Coefficients

Real Roots of Univariate Polynomials with Real Coefficients Real Roots of Univariate Polynomials with Real Coefficients mostly written by Christina Hewitt March 22, 2012 1 Introduction Polynomial equations are used throughout mathematics. When solving polynomials

More information

INDISTINGUISHABILITY OF ABSOLUTELY CONTINUOUS AND SINGULAR DISTRIBUTIONS

INDISTINGUISHABILITY OF ABSOLUTELY CONTINUOUS AND SINGULAR DISTRIBUTIONS INDISTINGUISHABILITY OF ABSOLUTELY CONTINUOUS AND SINGULAR DISTRIBUTIONS STEVEN P. LALLEY AND ANDREW NOBEL Abstract. It is shown that there are no consistent decision rules for the hypothesis testing problem

More information

SOLUTIONS TO EXERCISES FOR. MATHEMATICS 205A Part 3. Spaces with special properties

SOLUTIONS TO EXERCISES FOR. MATHEMATICS 205A Part 3. Spaces with special properties SOLUTIONS TO EXERCISES FOR MATHEMATICS 205A Part 3 Fall 2008 III. Spaces with special properties III.1 : Compact spaces I Problems from Munkres, 26, pp. 170 172 3. Show that a finite union of compact subspaces

More information

1. Prove that the empty set is a subset of every set.

1. Prove that the empty set is a subset of every set. 1. Prove that the empty set is a subset of every set. Basic Topology Written by Men-Gen Tsai email: b89902089@ntu.edu.tw Proof: For any element x of the empty set, x is also an element of every set since

More information

Lies My Calculator and Computer Told Me

Lies My Calculator and Computer Told Me Lies My Calculator and Computer Told Me 2 LIES MY CALCULATOR AND COMPUTER TOLD ME Lies My Calculator and Computer Told Me See Section.4 for a discussion of graphing calculators and computers with graphing

More information

Introduction to Topology

Introduction to Topology Introduction to Topology Tomoo Matsumura November 30, 2010 Contents 1 Topological spaces 3 1.1 Basis of a Topology......................................... 3 1.2 Comparing Topologies.......................................

More information

Algorithmic Game Semantics and Software Model-Checking

Algorithmic Game Semantics and Software Model-Checking Algorithmic Game Semantics and Software Model-Checking 1 Algorithmic Game Semantics and Software Model-Checking Samson Abramsky Oxford University Computing Laboratory Algorithmic Game Semantics and Software

More information

Reading 13 : Finite State Automata and Regular Expressions

Reading 13 : Finite State Automata and Regular Expressions CS/Math 24: Introduction to Discrete Mathematics Fall 25 Reading 3 : Finite State Automata and Regular Expressions Instructors: Beck Hasti, Gautam Prakriya In this reading we study a mathematical model

More information

Elements of probability theory

Elements of probability theory 2 Elements of probability theory Probability theory provides mathematical models for random phenomena, that is, phenomena which under repeated observations yield di erent outcomes that cannot be predicted

More information

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

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

More information

DIFFERENTIABILITY OF COMPLEX FUNCTIONS. Contents

DIFFERENTIABILITY OF COMPLEX FUNCTIONS. Contents DIFFERENTIABILITY OF COMPLEX FUNCTIONS Contents 1. Limit definition of a derivative 1 2. Holomorphic functions, the Cauchy-Riemann equations 3 3. Differentiability of real functions 5 4. A sufficient condition

More information

Common sense, and the model that we have used, suggest that an increase in p means a decrease in demand, but this is not the only possibility.

Common sense, and the model that we have used, suggest that an increase in p means a decrease in demand, but this is not the only possibility. Lecture 6: Income and Substitution E ects c 2009 Je rey A. Miron Outline 1. Introduction 2. The Substitution E ect 3. The Income E ect 4. The Sign of the Substitution E ect 5. The Total Change in Demand

More information

8 Divisibility and prime numbers

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

More information

Static Taint-Analysis on Binary Executables

Static Taint-Analysis on Binary Executables Static Taint-Analysis on Binary Executables Sanjay Rawat, Laurent Mounier, Marie-Laure Potet VERIMAG University of Grenoble October 2011 Static Taint-Analysis on Binary Executables 1/29 Outline 1 Introduction

More information

Variations of Batteric V, Part 1

Variations of Batteric V, Part 1 CBV Semantics (Draft) Navit Fedida, John Havlicek, Nissan Levi, and Hillel Miller Motorola, Inc. 7700 W. Parmer Lane Austin, TX 78729 13 January 2002 Abstract A precise denition is given of the semantics

More information

Multi-variable Calculus and Optimization

Multi-variable Calculus and Optimization Multi-variable Calculus and Optimization Dudley Cooke Trinity College Dublin Dudley Cooke (Trinity College Dublin) Multi-variable Calculus and Optimization 1 / 51 EC2040 Topic 3 - Multi-variable Calculus

More information

Model Checking: An Introduction

Model Checking: An Introduction Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI

More information

How To Solve A Minimum Set Covering Problem (Mcp)

How To Solve A Minimum Set Covering Problem (Mcp) Measuring Rationality with the Minimum Cost of Revealed Preference Violations Mark Dean and Daniel Martin Online Appendices - Not for Publication 1 1 Algorithm for Solving the MASP In this online appendix

More information

Continued Fractions and the Euclidean Algorithm

Continued Fractions and the Euclidean Algorithm Continued Fractions and the Euclidean Algorithm Lecture notes prepared for MATH 326, Spring 997 Department of Mathematics and Statistics University at Albany William F Hammond Table of Contents Introduction

More information

TOPIC 4: DERIVATIVES

TOPIC 4: DERIVATIVES TOPIC 4: DERIVATIVES 1. The derivative of a function. Differentiation rules 1.1. The slope of a curve. The slope of a curve at a point P is a measure of the steepness of the curve. If Q is a point on the

More information

Chapter 3: Section 3-3 Solutions of Linear Programming Problems

Chapter 3: Section 3-3 Solutions of Linear Programming Problems Chapter 3: Section 3-3 Solutions of Linear Programming Problems D. S. Malik Creighton University, Omaha, NE D. S. Malik Creighton University, Omaha, NE Chapter () 3: Section 3-3 Solutions of Linear Programming

More information

Midterm Practice Problems

Midterm Practice Problems 6.042/8.062J Mathematics for Computer Science October 2, 200 Tom Leighton, Marten van Dijk, and Brooke Cowan Midterm Practice Problems Problem. [0 points] In problem set you showed that the nand operator

More information

Mathematical Methods of Engineering Analysis

Mathematical Methods of Engineering Analysis Mathematical Methods of Engineering Analysis Erhan Çinlar Robert J. Vanderbei February 2, 2000 Contents Sets and Functions 1 1 Sets................................... 1 Subsets.............................

More information

1.2 Solving a System of Linear Equations

1.2 Solving a System of Linear Equations 1.. SOLVING A SYSTEM OF LINEAR EQUATIONS 1. Solving a System of Linear Equations 1..1 Simple Systems - Basic De nitions As noticed above, the general form of a linear system of m equations in n variables

More information

Quotient Rings and Field Extensions

Quotient Rings and Field Extensions Chapter 5 Quotient Rings and Field Extensions In this chapter we describe a method for producing field extension of a given field. If F is a field, then a field extension is a field K that contains F.

More information

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

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

More information

Binary Adders: Half Adders and Full Adders

Binary Adders: Half Adders and Full Adders Binary Adders: Half Adders and Full Adders In this set of slides, we present the two basic types of adders: 1. Half adders, and 2. Full adders. Each type of adder functions to add two binary bits. In order

More information

Static Program Transformations for Efficient Software Model Checking

Static Program Transformations for Efficient Software Model Checking Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major

More information

U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009. Notes on Algebra

U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009. Notes on Algebra U.C. Berkeley CS276: Cryptography Handout 0.1 Luca Trevisan January, 2009 Notes on Algebra These notes contain as little theory as possible, and most results are stated without proof. Any introductory

More information

CHAPTER 7 GENERAL PROOF SYSTEMS

CHAPTER 7 GENERAL PROOF SYSTEMS CHAPTER 7 GENERAL PROOF SYSTEMS 1 Introduction Proof systems are built to prove statements. They can be thought as an inference machine with special statements, called provable statements, or sometimes

More information

8 Primes and Modular Arithmetic

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.

More information

Static Analysis. Find the Bug! 15-654: Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled

Static Analysis. Find the Bug! 15-654: Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled Static Analysis 15-654: Analysis of Software Artifacts Jonathan Aldrich 1 Find the Bug! Source: Engler et al., Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, OSDI

More information

The Fundamental Theorem of Arithmetic

The Fundamental Theorem of Arithmetic The Fundamental Theorem of Arithmetic 1 Introduction: Why this theorem? Why this proof? One of the purposes of this course 1 is to train you in the methods mathematicians use to prove mathematical statements,

More information

Degrees of Truth: the formal logic of classical and quantum probabilities as well as fuzzy sets.

Degrees of Truth: the formal logic of classical and quantum probabilities as well as fuzzy sets. Degrees of Truth: the formal logic of classical and quantum probabilities as well as fuzzy sets. Logic is the study of reasoning. A language of propositions is fundamental to this study as well as true

More information

God created the integers and the rest is the work of man. (Leopold Kronecker, in an after-dinner speech at a conference, Berlin, 1886)

God created the integers and the rest is the work of man. (Leopold Kronecker, in an after-dinner speech at a conference, Berlin, 1886) Chapter 2 Numbers God created the integers and the rest is the work of man. (Leopold Kronecker, in an after-dinner speech at a conference, Berlin, 1886) God created the integers and the rest is the work

More information

15 Limit sets. Lyapunov functions

15 Limit sets. Lyapunov functions 15 Limit sets. Lyapunov functions At this point, considering the solutions to ẋ = f(x), x U R 2, (1) we were most interested in the behavior of solutions when t (sometimes, this is called asymptotic behavior

More information

Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom.

Some Polynomial Theorems. John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom. Some Polynomial Theorems by John Kennedy Mathematics Department Santa Monica College 1900 Pico Blvd. Santa Monica, CA 90405 rkennedy@ix.netcom.com This paper contains a collection of 31 theorems, lemmas,

More information

Lecture Notes on Linear Search

Lecture Notes on Linear Search Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is

More information

Duality of linear conic problems

Duality of linear conic problems Duality of linear conic problems Alexander Shapiro and Arkadi Nemirovski Abstract It is well known that the optimal values of a linear programming problem and its dual are equal to each other if at least

More information

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson

Mathematics for Computer Science/Software Engineering. Notes for the course MSM1F3 Dr. R. A. Wilson Mathematics for Computer Science/Software Engineering Notes for the course MSM1F3 Dr. R. A. Wilson October 1996 Chapter 1 Logic Lecture no. 1. We introduce the concept of a proposition, which is a statement

More information

NOTES ON LINEAR TRANSFORMATIONS

NOTES ON LINEAR TRANSFORMATIONS NOTES ON LINEAR TRANSFORMATIONS Definition 1. Let V and W be vector spaces. A function T : V W is a linear transformation from V to W if the following two properties hold. i T v + v = T v + T v for all

More information

Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER

Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Comprehensive Static Analysis Using Polyspace Products A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Introduction Verification of embedded software is a difficult task, made

More information

The last three chapters introduced three major proof techniques: direct,

The last three chapters introduced three major proof techniques: direct, CHAPTER 7 Proving Non-Conditional Statements The last three chapters introduced three major proof techniques: direct, contrapositive and contradiction. These three techniques are used to prove statements

More information

A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:

A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and: Binary Search Trees 1 The general binary tree shown in the previous chapter is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will)

More information

Coverability for Parallel Programs

Coverability for Parallel Programs 2015 http://excel.fit.vutbr.cz Coverability for Parallel Programs Lenka Turoňová* Abstract We improve existing method for the automatic verification of systems with parallel running processes. The technique

More information

A Survey of Static Program Analysis Techniques

A Survey of Static Program Analysis Techniques A Survey of Static Program Analysis Techniques Wolfgang Wögerer Technische Universität Wien October 18, 2005 Abstract Computer program analysis is the process of automatically analysing the bahavior of

More information

Solutions to Homework 6 Mathematics 503 Foundations of Mathematics Spring 2014

Solutions to Homework 6 Mathematics 503 Foundations of Mathematics Spring 2014 Solutions to Homework 6 Mathematics 503 Foundations of Mathematics Spring 2014 3.4: 1. If m is any integer, then m(m + 1) = m 2 + m is the product of m and its successor. That it to say, m 2 + m is the

More information

MATH10040 Chapter 2: Prime and relatively prime numbers

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

More information

Metric Spaces Joseph Muscat 2003 (Last revised May 2009)

Metric Spaces Joseph Muscat 2003 (Last revised May 2009) 1 Distance J Muscat 1 Metric Spaces Joseph Muscat 2003 (Last revised May 2009) (A revised and expanded version of these notes are now published by Springer.) 1 Distance A metric space can be thought of

More information

CONTINUED FRACTIONS AND FACTORING. Niels Lauritzen

CONTINUED FRACTIONS AND FACTORING. Niels Lauritzen CONTINUED FRACTIONS AND FACTORING Niels Lauritzen ii NIELS LAURITZEN DEPARTMENT OF MATHEMATICAL SCIENCES UNIVERSITY OF AARHUS, DENMARK EMAIL: niels@imf.au.dk URL: http://home.imf.au.dk/niels/ Contents

More information

Review of Fundamental Mathematics

Review of Fundamental Mathematics Review of Fundamental Mathematics As explained in the Preface and in Chapter 1 of your textbook, managerial economics applies microeconomic theory to business decision making. The decision-making tools

More information

CONTINUED FRACTIONS AND PELL S EQUATION. Contents 1. Continued Fractions 1 2. Solution to Pell s Equation 9 References 12

CONTINUED FRACTIONS AND PELL S EQUATION. Contents 1. Continued Fractions 1 2. Solution to Pell s Equation 9 References 12 CONTINUED FRACTIONS AND PELL S EQUATION SEUNG HYUN YANG Abstract. In this REU paper, I will use some important characteristics of continued fractions to give the complete set of solutions to Pell s equation.

More information

Formal Verification and Linear-time Model Checking

Formal Verification and Linear-time Model Checking Formal Verification and Linear-time Model Checking Paul Jackson University of Edinburgh Automated Reasoning 21st and 24th October 2013 Why Automated Reasoning? Intellectually stimulating and challenging

More information

Full and Complete Binary Trees

Full and Complete Binary Trees Full and Complete Binary Trees Binary Tree Theorems 1 Here are two important types of binary trees. Note that the definitions, while similar, are logically independent. Definition: a binary tree T is full

More information

Matrix Algebra. Some Basic Matrix Laws. Before reading the text or the following notes glance at the following list of basic matrix algebra laws.

Matrix Algebra. Some Basic Matrix Laws. Before reading the text or the following notes glance at the following list of basic matrix algebra laws. Matrix Algebra A. Doerr Before reading the text or the following notes glance at the following list of basic matrix algebra laws. Some Basic Matrix Laws Assume the orders of the matrices are such that

More information

1 = (a 0 + b 0 α) 2 + + (a m 1 + b m 1 α) 2. for certain elements a 0,..., a m 1, b 0,..., b m 1 of F. Multiplying out, we obtain

1 = (a 0 + b 0 α) 2 + + (a m 1 + b m 1 α) 2. for certain elements a 0,..., a m 1, b 0,..., b m 1 of F. Multiplying out, we obtain Notes on real-closed fields These notes develop the algebraic background needed to understand the model theory of real-closed fields. To understand these notes, a standard graduate course in algebra is

More information

Analyse statique de programmes numériques avec calculs flottants

Analyse statique de programmes numériques avec calculs flottants Analyse statique de programmes numériques avec calculs flottants 4ème Rencontres Arithmétique de l Informatique Mathématique Antoine Miné École normale supérieure 9 février 2011 Perpignan 9/02/2011 Analyse

More information

Basic Concepts of Point Set Topology Notes for OU course Math 4853 Spring 2011

Basic Concepts of Point Set Topology Notes for OU course Math 4853 Spring 2011 Basic Concepts of Point Set Topology Notes for OU course Math 4853 Spring 2011 A. Miller 1. Introduction. The definitions of metric space and topological space were developed in the early 1900 s, largely

More information

Math 55: Discrete Mathematics

Math 55: Discrete Mathematics Math 55: Discrete Mathematics UC Berkeley, Fall 2011 Homework # 5, due Wednesday, February 22 5.1.4 Let P (n) be the statement that 1 3 + 2 3 + + n 3 = (n(n + 1)/2) 2 for the positive integer n. a) What

More information

A FIRST COURSE IN OPTIMIZATION THEORY

A FIRST COURSE IN OPTIMIZATION THEORY A FIRST COURSE IN OPTIMIZATION THEORY RANGARAJAN K. SUNDARAM New York University CAMBRIDGE UNIVERSITY PRESS Contents Preface Acknowledgements page xiii xvii 1 Mathematical Preliminaries 1 1.1 Notation

More information

1 The Brownian bridge construction

1 The Brownian bridge construction The Brownian bridge construction The Brownian bridge construction is a way to build a Brownian motion path by successively adding finer scale detail. This construction leads to a relatively easy proof

More information

Clustering and scheduling maintenance tasks over time

Clustering and scheduling maintenance tasks over time Clustering and scheduling maintenance tasks over time Per Kreuger 2008-04-29 SICS Technical Report T2008:09 Abstract We report results on a maintenance scheduling problem. The problem consists of allocating

More information

Relational Databases

Relational Databases Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 18 Relational data model Domain domain: predefined set of atomic values: integers, strings,... every attribute

More information

Chapter 1: Key Concepts of Programming and Software Engineering

Chapter 1: Key Concepts of Programming and Software Engineering Chapter 1: Key Concepts of Programming and Software Engineering Software Engineering Coding without a solution design increases debugging time - known fact! A team of programmers for a large software development

More information

Combining Software and Hardware Verification Techniques

Combining Software and Hardware Verification Techniques Formal Methods in System Design, 21, 251 280, 2002 c 2002 Kluwer Academic Publishers. Manufactured in The Netherlands. Combining Software and Hardware Verification Techniques ROBERT P. KURSHAN VLADIMIR

More information

. 0 1 10 2 100 11 1000 3 20 1 2 3 4 5 6 7 8 9

. 0 1 10 2 100 11 1000 3 20 1 2 3 4 5 6 7 8 9 Introduction The purpose of this note is to find and study a method for determining and counting all the positive integer divisors of a positive integer Let N be a given positive integer We say d is a

More information

Just the Factors, Ma am

Just the Factors, Ma am 1 Introduction Just the Factors, Ma am The purpose of this note is to find and study a method for determining and counting all the positive integer divisors of a positive integer Let N be a given positive

More information

4. Continuous Random Variables, the Pareto and Normal Distributions

4. Continuous Random Variables, the Pareto and Normal Distributions 4. Continuous Random Variables, the Pareto and Normal Distributions A continuous random variable X can take any value in a given range (e.g. height, weight, age). The distribution of a continuous random

More information

LEARNING OBJECTIVES FOR THIS CHAPTER

LEARNING OBJECTIVES FOR THIS CHAPTER CHAPTER 2 American mathematician Paul Halmos (1916 2006), who in 1942 published the first modern linear algebra book. The title of Halmos s book was the same as the title of this chapter. Finite-Dimensional

More information

How To Find Out How To Calculate A Premeasure On A Set Of Two-Dimensional Algebra

How To Find Out How To Calculate A Premeasure On A Set Of Two-Dimensional Algebra 54 CHAPTER 5 Product Measures Given two measure spaces, we may construct a natural measure on their Cartesian product; the prototype is the construction of Lebesgue measure on R 2 as the product of Lebesgue

More information

Linear Algebra I. Ronald van Luijk, 2012

Linear Algebra I. Ronald van Luijk, 2012 Linear Algebra I Ronald van Luijk, 2012 With many parts from Linear Algebra I by Michael Stoll, 2007 Contents 1. Vector spaces 3 1.1. Examples 3 1.2. Fields 4 1.3. The field of complex numbers. 6 1.4.

More information

3.3 Real Zeros of Polynomials

3.3 Real Zeros of Polynomials 3.3 Real Zeros of Polynomials 69 3.3 Real Zeros of Polynomials In Section 3., we found that we can use synthetic division to determine if a given real number is a zero of a polynomial function. This section

More information

CS 103X: Discrete Structures Homework Assignment 3 Solutions

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

More information

PUTNAM TRAINING POLYNOMIALS. Exercises 1. Find a polynomial with integral coefficients whose zeros include 2 + 5.

PUTNAM TRAINING POLYNOMIALS. Exercises 1. Find a polynomial with integral coefficients whose zeros include 2 + 5. PUTNAM TRAINING POLYNOMIALS (Last updated: November 17, 2015) Remark. This is a list of exercises on polynomials. Miguel A. Lerma Exercises 1. Find a polynomial with integral coefficients whose zeros include

More information

Comments on Quotient Spaces and Quotient Maps

Comments on Quotient Spaces and Quotient Maps 22M:132 Fall 07 J. Simon Comments on Quotient Spaces and Quotient Maps There are many situations in topology where we build a topological space by starting with some (often simpler) space[s] and doing

More information

programming languages, programming language standards and compiler validation

programming languages, programming language standards and compiler validation Software Quality Issues when choosing a Programming Language C.J.Burgess Department of Computer Science, University of Bristol, Bristol, BS8 1TR, England Abstract For high quality software, an important

More information

Zeros of a Polynomial Function

Zeros of a Polynomial Function Zeros of a Polynomial Function An important consequence of the Factor Theorem is that finding the zeros of a polynomial is really the same thing as factoring it into linear factors. In this section we

More information

Functional Programming. Functional Programming Languages. Chapter 14. Introduction

Functional Programming. Functional Programming Languages. Chapter 14. Introduction Functional Programming Languages Chapter 14 Introduction Functional programming paradigm History Features and concepts Examples: Lisp ML 1 2 Functional Programming Functional Programming Languages The

More information