CMCS 312: Programming Languages Lecture 3: Lambda Calculus (Syntax, Substitution, Beta Reduction) Acar & Ahmed 17 January 2008
|
|
|
- Cynthia Henderson
- 10 years ago
- Views:
Transcription
1 CMCS 312: Programming Languages Lecture 3: Lambda Calculus (Syntax, Substitution, Beta Reduction) Acar & Ahmed 17 January 2008 Contents 1 Announcements 1 2 Introduction 1 3 Abstract Syntax 1 4 Bound and Free Variables 3 5 Substitution 4 6 Alpha Conversion and Alpha Equivalence 5 7 β-reduction 6 8 Homework Exercise 7 1 Introduction Today we will talk about lambda calculus. Lambda calculus is tiny calculus that is Turing complete. It is important because it enables us both to write reasonably sophisticated programs and also study about the properties of such programs using mathematics. 2 Abstract Syntax Let V be a countable set V of variables. lambda calculus as follows. We define the abstract syntax for Definition 1 (Inductive Definition) T is the least set of the terms that satisfy the following. 1. if x V then x T 2. if t 1 T and t 2 T then t 1 t 2 T 3. if x V and t T then λx.t T 4. T is the least set verifying the above properties 1
2 Each term in T is called a lambda term. Some examples are x, λx.x, λx.x y. The term λx.x is also known as (lambda) abstraction, and the term t 1 t 2 is known as application. Note that this is the definition of the abstract syntax. That is, it defines the set of properly parsed terms (i.e., abstract syntax trees). It does not tell us how to read a lambda term. For example, we can parse λx.x y as (λx.x y) or (λx.x)y. Similarly, we can parse t 1 t 2 t 3 as (t 1 t 2 ) t 3 or t 1 (t 2 t 3 ). We will use parenthesis to aid in parsing (to disambiguate the syntax). To minimize parenthesis, we will have the following conventions: 1. Application associates to the left. 2. The body of a lambda terms extends as far as right as possible. With this convention λx.x y is parsed as λx.(x y) and t 1 t 2 t 3 is parsed as (t 1 t 2 ) t 3. We can define the same syntax based on inference rules: Definition 2 (Inference Rules) Given a countable set of variables V, the set of lambda terms is defined as follows x V x T t 1 T t 2 T t 1 t 2 T x V t T λx.t T The most succinct definition is the BNF style. Definition 3 (BNF Style) Assuming that x ranges over a countable set of variables, the set of lambda terms t is defined as follows. t : : = x t 1 t 2 λx.t So we have defined the syntax for lambda terms but what do they mean? An intuitive way of thinking of λx.t is as a function that takes x and computes the result in its body t. To develop this intuition a bit further let s abuse our notation a bit. Suppose that our syntax allow us to write natural numbers and add them. For example, we may have terms like this 1, 2, Now, what does the following lambda terms do? 1. λx. + x 1, 2. λx.λy. + x y, 3. λx.λy.λ.z.z(+ x y). 2
3 3 Bound and Free Variables A lambda abstraction denotes a function. For example, the abstraction λx.+ x 1 denotes a function that takes a parameter, x, and returns the value x + 1. The parameter x is called the formal parameter and we say that λ binds it. In a lambda abstraction, the formal parameter is followed by a. and the body of the function. A lambda abstraction always consists of the four parts: the λ, the formal parameter, the., and the body. Consider the lambda abstraction, λx+ x y. In order to evaluate the function, for a particular input parameter x, we need to know the value of y. The variable y in this case is free and x is bound; λ binds x. An occurrence of a variable is bound if there is an enclosing lambda abstraction that binds the variable, and is free otherwise. Example 4 Some example lambda abstractions and their bound and free variables. 1. λx.x is the identity function. Here x is a bound variable. 2. λx.y is the constant y function. Here y is a free variable. 3. λx.x y has x as a bound variable and y as a free variable. 4. λx.(λy.x y) has both variables bound. 5. x λx. + x 1. In this term the first occurrence of x is free and the second is bound. We define the set of free variables of a term, t, as the set of variables that occur free in the term and denote it with F V (t). For example, F V (+ x λx. + x 1) = x}. Formally, we define the set of free variables of a term as follows. Definition 5 (Free Variables) The set of free variables of a term t is F V (t) V is defined recursively as follows 1. If x V then F V (x) = x} 2. If t 1, t 2 T then F V (t 1 t 2 ) = F V (t 1 ) F V (t 2 ) 3. If t T and x V then F V (λx.t) = F V (t) \ x} Now that we have a definition of the set of free variables in a term, we can distinguish between two terms such as λx.x and λx. + xy. Definition 6 (Closed and Open Terms) A term t is closed if F V (t) =. Otherwise t is open. 3
4 4 Substitution A lambda abstraction denotes a function. How do we evaluate a function or a lambda abstraction at a particular value? For example, the term (λx. + 1 x)2 denotes the application of (λx. + 1 x) to the parameter 2. To evaluate such a term we would like to replace the occurrences of the formal parameter x with the value 2. For example, for (λx. + 1 x) 2 evaluates to (+ 1 2). This is an example substitution, where we substitute the value 2 for the variable x in (λx. + 1 x). Formally, we define substitution as follows. Definition 7 The substitution of a term, t for a variable x V in a term t, denoted by [t /x]t, is an instance of t where all the free occurrences x is replaced by the term t. Throughout this course, we will use the notation [t /x]t to denote a substitution of t for x in t. Different notations are preferred by different textbooks or authors. Two other commonly used notations are t[t /x] and [x := t ]t. Pierce s book uses the notation [x t ]t. Example 8 Some example substitutions. 1. [λy.y/x](x x) = (λy.y) (λy.y) 2. [λy.y/x](λx.x) = λx.x (x is not free.) 3. [y/x](λz.x) = λz.y A substitution, as we defined it, is actually incorrect. For example, consider the lambda abstraction λy.x, the constant function, and the substitution [y/x](λy.x), which is equal to λy.y, the identity function. Thus, the substitution would naively change the constant function into the identity function. Here, the problem is that the variable x, a free variable, is substituted with y, which then becomes bound by the lambda abstraction. In this case, we say that y is captured in the substitution. We do not want to transform free variables into bound variables during the substitution process. We need to redefine substitution to avoid capture. What can we do? Consider the following situation: given a program which has a function that takes a variable x and has a variable y in its body, we can change the name of y to z without any modification of the results, but we cannot change the name of y to x without adversely affecting the results. The next definition avoids capture. Definition 9 (Capture Avoiding substitution) t if y = x [t/x]y = y if y x 4
5 [t /x](λy.t) = [t/x](t 1 t 2 ) = [t/x]t 1 [t/x]t 2. λy.t if x = y (y is bound) λy.[t /x]t if x y and y F V (t ) Question: What does the substitution [λy.x y y/z](λx.x z) yield? Solution: This substitution is undefined. Question: How about the substitution [λy.x y y/z](λy.y z) Solution: λy.y (λy.x y y) According to this definition a substitution that causes capture is undefined. But something is just not right, because the lambda abstractions λx.x z and λy.y z differ only in the name of their bound variables. Lambda abstractions denote functions, thus these two lambda abstractions are the same; it should not matter what the bound variables are named. 5 Alpha Conversion and Alpha Equivalence One way to avoid capture is to rename the bound variables in a lambda abstraction. To goal is to ensure that no bound variable has the same name as a free variable in the term being substituted. This process of renaming the bound variables is called α-conversion or α- variation. Two terms that are reducible to each other by α-conversions are alpha equivalent. We denote α-equivalent terms t 1 and t 2 as t 1 = α t λx.x = α λy.y. 2. λx.λy.λz.x y z = α λz.λy.λx.z y x. 3. λx.t = α λy.[y/x]t if y F V (t). Exercise: Show that = α is an equivalence relation. Alpha conversion gives us a way to define substitution without worrying about capture. Definition 10 (Substitution with Explicit Alpha Conversion) t if y = x [t/x]y = y if y x [t /x](λy.t) = [t/x](t 1 t 2 ) = [t/x]t 1 [t/x]t 2. λy.t if x = y λz.[t /x][z/y]t if x y z F V (t) F V (t ) 5
6 The idea of this definition is to rename formal variable of the lambda abstraction so that it does not occur freely in t. This ensures that no free variables of t are captured. This is not enough, however, because we also have to make sure that we do not capture the free variables of t itself. Note that, in this definition, substitution is a relation not a function. That is the result of a substitution is a set of terms where the renaming take different forms. More precisely, the variable z can take many values (the names of difference variables). All such terms are α-equivalent. Now that we made precise the idea of alpha conversion, we can now forget about it. From now on, we will work modulo α-equivalence. That is, we will not distinguish between two terms that are α-equivalent. We can use our old definition, with implicit alpha conversion applied as required. Definition 11 (Substitution with Implicit Alpha Conversion) t if y = x [t/x]y = y if y x [t/x](t 1 t 2 ) = [t/x]t 1 [t/x]t 2. [t /x](λy.t) = 6 β-reduction λy.t if x = y (y is bound) λy.[t /x]t if x y y F V (t ) In Section 5, we briefly discussed how to evaluate a function with a given parameter by substitution. We can give an operational semantics for lambda terms based on substitution. The idea is to take each application and reduce it to another term by applying substitution this is called β reduction, and is denoted β. Definition 12 (Single-step β-reduction) (λx.t 1 ) t 2 β [t 2 /x]t 1 t 1 β t 1 t 1 t 2 β t 1 t 2 t 2 β t 2 t 1 t 2 β t 1 t 2 t β t λx.t β λx.t 6
7 We define multi-step beta reduction, denoted β, as 0 or more applications of single-step beta reduction rules. The use of to denote reductions suggests their use in Kleene Algebra of Automata Theory. Definition 13 (Multi-step β-reduction) t β t t β t t β t t 1 β t 2 t 2 β t 3 t 1 β t 3 Two terms that are β-reducible to each other are called β-equivalent, denoted by = β. Definition 14 (β-equivalence) t = β t 7 Homework Exercise t β t t = β t t 1 = β t 2 t 2 = β t 3 t 1 = β t 3 t = β t t = β t A term t is in normal form if there is no t such that t β t. We say that a term t is normalizable if there is some t such that t β t and t is in normal form. Answer the following questions and prove your answer (if your answer is yes, an example suffices). 1. Are there any normalizable terms? 2. Are there any non-normalizable terms? 7
A Tutorial Introduction to the Lambda Calculus
A Tutorial Introduction to the Lambda Calculus Raúl Rojas FU Berlin, WS-97/98 Abstract This paper is a short and painless introduction to the λ calculus. Originally developed in order to study some mathematical
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
CIS 500 Software Foundations Midterm I, Review Questions
CIS 500 Software Foundations Midterm I, Review Questions Untyped lambda calculus 1. (2 points) We have seen that a linear expression likeλx.λy.xyx is shorthand for an abstract syntax tree that can be drawn
[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
Types, Polymorphism, and Type Reconstruction
Types, Polymorphism, and Type Reconstruction Sources This material is based on the following sources: Pierce, B.C., Types and Programming Languages. MIT Press, 2002. Kanellakis, P.C., Mairson, H.G. and
Bindings, mobility of bindings, and the -quantifier
ICMS, 26 May 2007 1/17 Bindings, mobility of bindings, and the -quantifier Dale Miller, INRIA-Saclay and LIX, École Polytechnique This talk is based on papers with Tiu in LICS2003 & ACM ToCL, and experience
Summary Last Lecture. Automated Reasoning. Outline of the Lecture. Definition sequent calculus. Theorem (Normalisation and Strong Normalisation)
Summary Summary Last Lecture sequent calculus Automated Reasoning Georg Moser Institute of Computer Science @ UIBK Winter 013 (Normalisation and Strong Normalisation) let Π be a proof in minimal logic
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
Fixed-Point Logics and Computation
1 Fixed-Point Logics and Computation Symposium on the Unusual Effectiveness of Logic in Computer Science University of Cambridge 2 Mathematical Logic Mathematical logic seeks to formalise the process of
The Heat Equation. Lectures INF2320 p. 1/88
The Heat Equation Lectures INF232 p. 1/88 Lectures INF232 p. 2/88 The Heat Equation We study the heat equation: u t = u xx for x (,1), t >, (1) u(,t) = u(1,t) = for t >, (2) u(x,) = f(x) for x (,1), (3)
Probability Using Dice
Using Dice One Page Overview By Robert B. Brown, The Ohio State University Topics: Levels:, Statistics Grades 5 8 Problem: What are the probabilities of rolling various sums with two dice? How can you
α α λ α = = λ λ α ψ = = α α α λ λ ψ α = + β = > θ θ β > β β θ θ θ β θ β γ θ β = γ θ > β > γ θ β γ = θ β = θ β = θ β = β θ = β β θ = = = β β θ = + α α α α α = = λ λ λ λ λ λ λ = λ λ α α α α λ ψ + α =
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
Lecture 1. Basic Concepts of Set Theory, Functions and Relations
September 7, 2005 p. 1 Lecture 1. Basic Concepts of Set Theory, Functions and Relations 0. Preliminaries...1 1. Basic Concepts of Set Theory...1 1.1. Sets and elements...1 1.2. Specification of sets...2
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
discuss how to describe points, lines and planes in 3 space.
Chapter 2 3 Space: lines and planes In this chapter we discuss how to describe points, lines and planes in 3 space. introduce the language of vectors. discuss various matters concerning the relative position
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
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
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
Lecture 10: CPA Encryption, MACs, Hash Functions. 2 Recap of last lecture - PRGs for one time pads
CS 7880 Graduate Cryptography October 15, 2015 Lecture 10: CPA Encryption, MACs, Hash Functions Lecturer: Daniel Wichs Scribe: Matthew Dippel 1 Topic Covered Chosen plaintext attack model of security MACs
Turing Machines: An Introduction
CIT 596 Theory of Computation 1 We have seen several abstract models of computing devices: Deterministic Finite Automata, Nondeterministic Finite Automata, Nondeterministic Finite Automata with ɛ-transitions,
Blame for All. Jeremy G. Siek. Amal Ahmed. Robert Bruce Findler. Philip Wadler. Abstract. 1. Introduction
Blame for All Amal Ahmed Indiana University [email protected] Robert Bruce Findler Northwestern University [email protected] Jeremy G. Siek University of Colorado at Boulder [email protected]
9.4. The Scalar Product. Introduction. Prerequisites. Learning Style. Learning Outcomes
The Scalar Product 9.4 Introduction There are two kinds of multiplication involving vectors. The first is known as the scalar product or dot product. This is so-called because when the scalar product of
Specification and Analysis of Contracts Lecture 1 Introduction
Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider [email protected] http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.
Teaching Formal Methods for Computational Linguistics at Uppsala University
Teaching Formal Methods for Computational Linguistics at Uppsala University Roussanka Loukanova Computational Linguistics Dept. of Linguistics and Philology, Uppsala University P.O. Box 635, 751 26 Uppsala,
3 More on Accumulation and Discount Functions
3 More on Accumulation and Discount Functions 3.1 Introduction In previous section, we used 1.03) # of years as the accumulation factor. This section looks at other accumulation factors, including various
Pushdown Automata. International PhD School in Formal Languages and Applications Rovira i Virgili University Tarragona, Spain
Pushdown Automata transparencies made for a course at the International PhD School in Formal Languages and Applications Rovira i Virgili University Tarragona, Spain Hendrik Jan Hoogeboom, Leiden http://www.liacs.nl/
2. The Language of First-order Logic
2. The Language of First-order Logic KR & R Brachman & Levesque 2005 17 Declarative language Before building system before there can be learning, reasoning, planning, explanation... need to be able to
2) Write in detail the issues in the design of code generator.
COMPUTER SCIENCE AND ENGINEERING VI SEM CSE Principles of Compiler Design Unit-IV Question and answers UNIT IV CODE GENERATION 9 Issues in the design of code generator The target machine Runtime Storage
Homework #1 Solutions
MAT 303 Spring 203 Homework # Solutions Problems Section.:, 4, 6, 34, 40 Section.2:, 4, 8, 30, 42 Section.4:, 2, 3, 4, 8, 22, 24, 46... Verify that y = x 3 + 7 is a solution to y = 3x 2. Solution: From
Lines & Planes. Packages: linalg, plots. Commands: evalm, spacecurve, plot3d, display, solve, implicitplot, dotprod, seq, implicitplot3d.
Lines & Planes Introduction and Goals: This lab is simply to give you some practice with plotting straight lines and planes and how to do some basic problem solving with them. So the exercises will be
Simulation-Based Security with Inexhaustible Interactive Turing Machines
Simulation-Based Security with Inexhaustible Interactive Turing Machines Ralf Küsters Institut für Informatik Christian-Albrechts-Universität zu Kiel 24098 Kiel, Germany [email protected]
FIRST ORDER THEORY OF THE s-degrees AND ARITHMETIC
FIRST ORDER THEORY OF THE s-degrees AND ARITHMETIC DANIELE MARSIBILIO AND ANDREA SORBI Abstract. We show that the first order theories of the s-degrees, and of the Q-degrees, are computably isomorphic
How To Understand The Theory Of Computer Science
Theory of Computation Lecture Notes Abhijat Vichare August 2005 Contents 1 Introduction 2 What is Computation? 3 The λ Calculus 3.1 Conversions: 3.2 The calculus in use 3.3 Few Important Theorems 3.4 Worked
Introduction to Type Theory
Introduction to Type Theory Herman Geuvers Radboud University Nijmegen, The Netherlands Technical University Eindhoven, The Netherlands 1 Overview These notes comprise the lecture Introduction to Type
Recursive Algorithms. Recursion. Motivating Example Factorial Recall the factorial function. { 1 if n = 1 n! = n (n 1)! if n > 1
Recursion Slides by Christopher M Bourke Instructor: Berthe Y Choueiry Fall 007 Computer Science & Engineering 35 Introduction to Discrete Mathematics Sections 71-7 of Rosen cse35@cseunledu Recursive Algorithms
Nonparametric adaptive age replacement with a one-cycle criterion
Nonparametric adaptive age replacement with a one-cycle criterion P. Coolen-Schrijner, F.P.A. Coolen Department of Mathematical Sciences University of Durham, Durham, DH1 3LE, UK e-mail: [email protected]
HOMEWORK 5 SOLUTIONS. n!f n (1) lim. ln x n! + xn x. 1 = G n 1 (x). (2) k + 1 n. (n 1)!
Math 7 Fall 205 HOMEWORK 5 SOLUTIONS Problem. 2008 B2 Let F 0 x = ln x. For n 0 and x > 0, let F n+ x = 0 F ntdt. Evaluate n!f n lim n ln n. By directly computing F n x for small n s, we obtain the following
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
Observational Program Calculi and the Correctness of Translations
Observational Program Calculi and the Correctness of Translations Manfred Schmidt-Schauss 1, David Sabel 1, Joachim Niehren 2, and Jan Schwinghammer 1 Goethe-University, Frankfurt, Germany 2 INRIA Lille,
Welcome to Math 19500 Video Lessons. Stanley Ocken. Department of Mathematics The City College of New York Fall 2013
Welcome to Math 19500 Video Lessons Prof. Department of Mathematics The City College of New York Fall 2013 An important feature of the following Beamer slide presentations is that you, the reader, move
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
AN INTRODUCTION TO FUNCTIONAL PROGRAMMING THROUGH LAMBDA CALCULUS. Greg Michaelson
AN INTRODUCTION TO FUNCTIONAL PROGRAMMING THROUGH LAMBDA CALCULUS Greg Michaelson Department of Computing and Electrical Engineering Heriot-Watt University Riccarton Campus Edinburgh EH14 4AS - 2 - Preface
CS422 - Programming Language Design
1 CS422 - Programming Language Design General Information and Introduction Grigore Roşu Department of Computer Science University of Illinois at Urbana-Champaign 2 General Information Class Webpage and
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
Formal Engineering for Industrial Software Development
Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3
Parametric Domain-theoretic models of Linear Abadi & Plotkin Logic
Parametric Domain-theoretic models of Linear Abadi & Plotkin Logic Lars Birkedal Rasmus Ejlers Møgelberg Rasmus Lerchedahl Petersen IT University Technical Report Series TR-00-7 ISSN 600 600 February 00
15-251. Great Theoretical Ideas in Computer Science
15-251 Great Theoretical Ideas in Computer Science 15-251 Course Evaluations: sadistic Student Comments 251 is like: we re gonna kick your ass and you re gonna enjoy it. And we did! Awesome, despite soul-crushing
Degrees that are not degrees of categoricity
Degrees that are not degrees of categoricity Bernard A. Anderson Department of Mathematics and Physical Sciences Gordon State College [email protected] www.gordonstate.edu/faculty/banderson Barbara
Polynomials and Factoring. Unit Lesson Plan
Polynomials and Factoring Unit Lesson Plan By: David Harris University of North Carolina Chapel Hill Math 410 Dr. Thomas, M D. 2 Abstract This paper will discuss, and give, lesson plans for all the topics
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
Chi Square Tests. Chapter 10. 10.1 Introduction
Contents 10 Chi Square Tests 703 10.1 Introduction............................ 703 10.2 The Chi Square Distribution.................. 704 10.3 Goodness of Fit Test....................... 709 10.4 Chi Square
Automata and Formal Languages
Automata and Formal Languages Winter 2009-2010 Yacov Hel-Or 1 What this course is all about This course is about mathematical models of computation We ll study different machine models (finite automata,
Chapter 4 Lecture Notes
Chapter 4 Lecture Notes Random Variables October 27, 2015 1 Section 4.1 Random Variables A random variable is typically a real-valued function defined on the sample space of some experiment. For instance,
CONTINUED FRACTIONS AND FACTORING. Niels Lauritzen
CONTINUED FRACTIONS AND FACTORING Niels Lauritzen ii NIELS LAURITZEN DEPARTMENT OF MATHEMATICAL SCIENCES UNIVERSITY OF AARHUS, DENMARK EMAIL: [email protected] URL: http://home.imf.au.dk/niels/ Contents
Computer Science Theory. From the course description:
Computer Science Theory Goals of Course From the course description: Introduction to the theory of computation covering regular, context-free and computable (recursive) languages with finite state machines,
C H A P T E R Regular Expressions regular expression
7 CHAPTER Regular Expressions Most programmers and other power-users of computer systems have used tools that match text patterns. You may have used a Web search engine with a pattern like travel cancun
Automata Theory. Şubat 2006 Tuğrul Yılmaz Ankara Üniversitesi
Automata Theory Automata theory is the study of abstract computing devices. A. M. Turing studied an abstract machine that had all the capabilities of today s computers. Turing s goal was to describe the
Static vs. Dynamic. Lecture 10: Static Semantics Overview 1. Typical Semantic Errors: Java, C++ Typical Tasks of the Semantic Analyzer
Lecture 10: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis
Lecture 2: Universality
CS 710: Complexity Theory 1/21/2010 Lecture 2: Universality Instructor: Dieter van Melkebeek Scribe: Tyson Williams In this lecture, we introduce the notion of a universal machine, develop efficient universal
a 1 x + a 0 =0. (3) ax 2 + bx + c =0. (4)
ROOTS OF POLYNOMIAL EQUATIONS In this unit we discuss polynomial equations. A polynomial in x of degree n, where n 0 is an integer, is an expression of the form P n (x) =a n x n + a n 1 x n 1 + + a 1 x
TU e. Advanced Algorithms: experimentation project. The problem: load balancing with bounded look-ahead. Input: integer m 2: number of machines
The problem: load balancing with bounded look-ahead Input: integer m 2: number of machines integer k 0: the look-ahead numbers t 1,..., t n : the job sizes Problem: assign jobs to machines machine to which
Forecasting in supply chains
1 Forecasting in supply chains Role of demand forecasting Effective transportation system or supply chain design is predicated on the availability of accurate inputs to the modeling process. One of the
Lecture 2: Regular Languages [Fa 14]
Caveat lector: This is the first edition of this lecture note. Please send bug reports and suggestions to [email protected]. But the Lord came down to see the city and the tower the people were building.
1.5. Factorisation. Introduction. Prerequisites. Learning Outcomes. Learning Style
Factorisation 1.5 Introduction In Block 4 we showed the way in which brackets were removed from algebraic expressions. Factorisation, which can be considered as the reverse of this process, is dealt with
The Goldberg Rao Algorithm for the Maximum Flow Problem
The Goldberg Rao Algorithm for the Maximum Flow Problem COS 528 class notes October 18, 2006 Scribe: Dávid Papp Main idea: use of the blocking flow paradigm to achieve essentially O(min{m 2/3, n 1/2 }
Predicate Logic. For example, consider the following argument:
Predicate Logic The analysis of compound statements covers key aspects of human reasoning but does not capture many important, and common, instances of reasoning that are also logically valid. For example,
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
Andrew Pitts chapter for D. Sangorgi and J. Rutten (eds), Advanced Topics in Bisimulation and Coinduction, Cambridge Tracts in Theoretical Computer
Andrew Pitts chapter for D. Sangorgi and J. Rutten (eds), Advanced Topics in Bisimulation and Coinduction, Cambridge Tracts in Theoretical Computer Science No. 52, chapter 5, pages 197 232 ( c 2011 CUP)
BANACH AND HILBERT SPACE REVIEW
BANACH AND HILBET SPACE EVIEW CHISTOPHE HEIL These notes will briefly review some basic concepts related to the theory of Banach and Hilbert spaces. We are not trying to give a complete development, but
How To Write A Program Verification And Programming Book
Jose Bacelar Almeida Maria Joao Frade Jorge Sousa Pinto Simao Melo de Sousa Rigorous Software Development An Introduction to Program Verification & Springer Contents 1 Introduction 1 1.1 A Formal Approach
MATH 425, PRACTICE FINAL EXAM SOLUTIONS.
MATH 45, PRACTICE FINAL EXAM SOLUTIONS. Exercise. a Is the operator L defined on smooth functions of x, y by L u := u xx + cosu linear? b Does the answer change if we replace the operator L by the operator
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay
Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 17 Shannon-Fano-Elias Coding and Introduction to Arithmetic Coding
the recursion-tree method
the recursion- method recurrence into a 1 recurrence into a 2 MCS 360 Lecture 39 Introduction to Data Structures Jan Verschelde, 22 November 2010 recurrence into a The for consists of two steps: 1 Guess
Adding GADTs to OCaml the direct approach
Adding GADTs to OCaml the direct approach Jacques Garrigue & Jacques Le Normand Nagoya University / LexiFi (Paris) https://sites.google.com/site/ocamlgadt/ Garrigue & Le Normand Adding GADTs to OCaml 1
1 Portfolio mean and variance
Copyright c 2005 by Karl Sigman Portfolio mean and variance Here we study the performance of a one-period investment X 0 > 0 (dollars) shared among several different assets. Our criterion for measuring
If n is odd, then 3n + 7 is even.
Proof: Proof: We suppose... that 3n + 7 is even. that 3n + 7 is even. Since n is odd, there exists an integer k so that n = 2k + 1. that 3n + 7 is even. Since n is odd, there exists an integer k so that
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.,
Lecture 13 - Basic Number Theory.
Lecture 13 - Basic Number Theory. Boaz Barak March 22, 2010 Divisibility and primes Unless mentioned otherwise throughout this lecture all numbers are non-negative integers. We say that A divides B, denoted
Computer Science/Software Engineering
292 School of Science and Engineering Computer Science/Software Engineering Everald E. Mills, PhD, Chair Objectives The computer science program seeks to prepare students for careers that require sophisticated
Computer Programming. Course Details An Introduction to Computational Tools. Prof. Mauro Gaspari: [email protected]
Computer Programming Course Details An Introduction to Computational Tools Prof. Mauro Gaspari: [email protected] Road map for today The skills that we would like you to acquire: to think like a computer
Turing Degrees and Definability of the Jump. Theodore A. Slaman. University of California, Berkeley. CJuly, 2005
Turing Degrees and Definability of the Jump Theodore A. Slaman University of California, Berkeley CJuly, 2005 Outline Lecture 1 Forcing in arithmetic Coding and decoding theorems Automorphisms of countable
Math 115A HW4 Solutions University of California, Los Angeles. 5 2i 6 + 4i. (5 2i)7i (6 + 4i)( 3 + i) = 35i + 14 ( 22 6i) = 36 + 41i.
Math 5A HW4 Solutions September 5, 202 University of California, Los Angeles Problem 4..3b Calculate the determinant, 5 2i 6 + 4i 3 + i 7i Solution: The textbook s instructions give us, (5 2i)7i (6 + 4i)(
Formal Grammars and Languages
Formal Grammars and Languages Tao Jiang Department of Computer Science McMaster University Hamilton, Ontario L8S 4K1, Canada Bala Ravikumar Department of Computer Science University of Rhode Island Kingston,
Set-theoretic Foundation of Parametric Polymorphism and Subtyping
Set-theoretic Foundation of Parametric Polymorphism and Subtyping Giuseppe Castagna 1 Zhiwu Xu 1,2 1 CNRS, Laboratoire Preuves, Programmes et Systèmes, Univ Paris Diderot, Sorbonne Paris Cité, Paris, France.
(LMCS, p. 317) V.1. First Order Logic. This is the most powerful, most expressive logic that we will examine.
(LMCS, p. 317) V.1 First Order Logic This is the most powerful, most expressive logic that we will examine. Our version of first-order logic will use the following symbols: variables connectives (,,,,
15.3. Calculating centres of mass. Introduction. Prerequisites. Learning Outcomes. Learning Style
Calculating centres of mass 15.3 Introduction In this block we show how the idea of integration as the limit of a sum can be used to find the centre of mass of an object such as a thin plate, like a sheet
Constrained optimization.
ams/econ 11b supplementary notes ucsc Constrained optimization. c 2010, Yonatan Katznelson 1. Constraints In many of the optimization problems that arise in economics, there are restrictions on the values
A Little Set Theory (Never Hurt Anybody)
A Little Set Theory (Never Hurt Anybody) Matthew Saltzman Department of Mathematical Sciences Clemson University Draft: August 21, 2013 1 Introduction The fundamental ideas of set theory and the algebra
