Outline Mousavi: ADT
|
|
- Kenneth Gilmore
- 5 years ago
- Views:
Transcription
1 Outline Abstract Data Types Mohammad Mousavi Eindhoven University of Technology, The Netherlands Requirement Analysis and Design Verification (RADV)
2 Outline Outline Basic Concepts Booleans Standard Data Types Numbers Lists Sets and Bags
3 Outline Outline Basic Concepts Booleans Standard Data Types Numbers Lists Sets and Bags
4 Outline Outline Basic Concepts Booleans Standard Data Types Numbers Lists Sets and Bags
5 Outline Outline Basic Concepts Booleans Standard Data Types Numbers Lists Sets and Bags
6 Outline Outline Basic Concepts Booleans Standard Data Types Numbers Lists Sets and Bags
7 Outline Outline Basic Concepts Booleans Standard Data Types Numbers Lists Sets and Bags
8 System Design 1. State (data): Algebraic specification, Abstract Data Types (ADT) Examples: Clear, CASL 2. Behavior (process): Labelled Transition Systems (LTS) Examples: CCS, ACP mcrl2: the best of the two worlds!
9 ADTs Sorts: non-empty sets of data elements Examples: Bool, Nat, List(Nat), Bag(Bool) Constructors: denotation for all elements of the sort Examples: sort Nat; const zero : Nat; one : Nat; two : Nat;.
10 ADTs Sorts: non-empty sets of data elements Examples: Bool, Nat, List(Nat), Bag(Bool) Constructors: denotation for all elements of the sort Examples: sort Nat; const zero : Nat; one : Nat; two : Nat;.
11 ADTs Sorts: non-empty sets of data elements Constructors: denotation for all elements of the sort Examples: sort Nat; const zero : Nat; successor : Nat Nat;
12 ADTs Sorts: non-empty sets of data elements Constructors: denotation for all elements of the sort Examples: sort Dummy; const f : Dummy Dummy; Error: sort Dummy is empty. But constructors may be left out altogether... Constructor sorts: sorts containing at least one constructor.
13 ADTs Sorts: non-empty sets of data elements Constructors: denotation for all elements of the sort Examples: sort Dummy; const f : Dummy Dummy; Error: sort Dummy is empty. But constructors may be left out altogether... Constructor sorts: sorts containing at least one constructor.
14 ADTs Sorts: non-empty sets of data elements Constructors: denotation for all elements of the sort Examples: sort Dummy; const f : Dummy Dummy; Error: sort Dummy is empty. But constructors may be left out altogether... Constructor sorts: sorts containing at least one constructor.
15 ADTs Sorts: non-empty sets of data elements Constructors: denotation for all elements of the sort Maps: useful transformations on data const 0 : Nat; 1 : Nat; s : Nat Nat; maps add : Nat Nat Nat; p : Nat Nat; Equations: definition of maps, equalities among constructor terms
16 ADTs Sorts: non-empty sets of data elements Constructors: denotation for all elements of the sort Maps: useful transformations on data const 0 : Nat; 1 : Nat; s : Nat Nat; maps add : Nat Nat Nat; p : Nat Nat; Equations: definition of maps, equalities among constructor terms
17 ADTs Equations: definition of maps, equalities among constructor terms Examples: const 0 : Nat; 1 : Nat; s : Nat Nat; maps add : Nat Nat Nat; p : Nat Nat; var m, n : Nat; eqn 1 = s(0); add(n, 0) = n; add(n, s(m)) = s(add(n, m));
18 Exercises Equations: definition of maps, equalities among constructor terms Exercises: 1. Define the sort Bool; 2. (3.2.1) and the concept of,, < and > between natural numbers. Conditional equations: cond t = t, where cond is a term of type B (boolean).
19 Induction Principle Idea: to prove a theorem, you need to prove it for all members of the sorts, i.e., closed terms containing only constructors Example; φ(x) holds for x of sort Nat if 1. φ(0) holds; 2. given that φ(n) holds, then φ(s(n)) holds.
20 Induction Principle Idea: to prove a theorem, you need to prove it for all members of the sorts, i.e., closed terms containing only constructors Example; φ(x) holds for x of sort Nat if 1. φ(0) holds; 2. given that φ(n) holds, then φ(s(n)) holds.
21 Induction Principle Principle: φ(x) with x of sort S holds if 1. φ(c) holds, for each constructor c : S; 2. given that φ(c i ) holds, for each 0 i n and each term c i of sort S, then φ(c(c 0,..., c n )) holds, for each constructor c : S... S S ;
22 Induction Principle Exercise: prove for Nat that 1. add(0, m) = m, 2. add(s(n), m) = s(add(n, m)), and 3. m + n = n + m. const 0 : Nat; s : Nat Nat; maps add : Nat Nat Nat; var m, n : Nat; eqn add(n, 0) = n; add(n, s(m)) = s(add(n, m));
23 One Point Models Equations: definition of maps, equalities among constructor terms Is 0 different from s(0)? Not necessarily! Then, how can we enforce that?
24 One Point Models Equations: definition of maps, equalities among constructor terms Is 0 different from s(0)? Not necessarily! Then, how can we enforce that?
25 Booleans sort B; const true, false : B; maps : B B;,, : B B B; var b : B; eqn true = false; false = true; b = b; b true = b; b false = false;... Important assumption: true is different from false. Thus, any derivation leading to true = false is unsound.
26 Exercise Given that true and false are different, prove in the theory of natural numbers that it 0 = s(0) is unsound.
27 Booleans Quantification is also possible: maps Fermat : B var b : B; eqn Fermat = n : N.n 3 a, b, c : N. a / 0 b / 0 c / 0 a n + b n c n ;
28 Standard Data Types Commonly used data types: Booleans (sort B), natural numbers (sort N), etc. Each sort S is quipped with the following maps: maps, / : S S B; if : B S S S; var b : B; x, y : S; eqn x x = true; x / y = (x y); if (true, x, y) = x; if (false, x, y) = y; if (b, x, x) = x; if (x y, x, y) = y;
29 = Vs. eqn x x = true; x / y = (x y); if (true, x, y) = x; if (false, x, y) = y; if (b, x, x) = x; if (x y, x, y) = y; Theorem. For any such sort S, x y = true if and only if x = y. Proof. Assume that x y = true. x = if (true, x, y) = if (x y, x, y) = y. Assume that x = y. x y = x x = true.
30 = Vs. eqn x x = true; x / y = (x y); if (true, x, y) = x; if (false, x, y) = y; if (b, x, x) = x; if (x y, x, y) = y; Theorem. For any such sort S, x y = true if and only if x = y. Proof. Assume that x y = true. x = if (true, x, y) = if (x y, x, y) = y. Assume that x = y. x y = x x = true.
31 = Vs. eqn x x = true; x / y = (x y); if (true, x, y) = x; if (false, x, y) = y; if (b, x, x) = x; if (x y, x, y) = y; Theorem. For any such sort S, x y = true if and only if x = y. Proof. Assume that x y = true. x = if (true, x, y) = if (x y, x, y) = y. Assume that x = y. x y = x x = true.
32 Numbers Natural numbers (sort N), positive natural numbers (sort N + ), positive natural numbers (sort Z), and reals (sort R). Automatic type conversion (type cast) among numbers (a positive natural number is a natural number, an integer and a real number). Commonly used operators and relations (+,,, etc.) are defined among all appropriate sorts.
33 Positive Natural Numbers Efficient implementation: using constructors 1. 1 and 2. cdub(b, p), for boolean b and positive natural number p, where { 2n + 1 if b = true cdub(b, p) = 2n if b = false sort N + ; const 1 : N + ; cdub : B N + N + ; maps succ : N + N +.
34 Positive Natural Numbers Efficient implementation: using constructors 1. 1 and 2. cdub(b, p), for boolean b and positive natural number p, where { 2n + 1 if b = true cdub(b, p) = 2n if b = false sort N + ; const 1 : N + ; cdub : B N + N + ; maps succ : N + N +.
35 Positive Natural Numbers var b : B; p, q : N + ; eqn 1 cdub(b, p) = false; cdub(b, p) cdub(b, q) = p q; cdub(true, p) cdub(false, q) = false; succ(1) = cdub(false, 1);
36 Natural Numbers sort N; const c0 : N + ; cnat : N + N; maps Pos2Nat : N + N Nat2Pos : N N + succ : N N +.
37 Natural Numbers var b : B; p, q : N + ; eqn c0 cnat(p) = false; cnat(p) cnat(q) = p q; Pos2Nat = cnat; Nat2Pos(p) = p; succ(c0) = cnat(1); Exercise (3.2.6): prove that c0 cannot be equal to 1.
38 Natural Numbers var b : B; p, q : N + ; eqn c0 cnat(p) = false; cnat(p) cnat(q) = p q; Pos2Nat = cnat; Nat2Pos(p) = p; succ(c0) = cnat(1); Exercise (3.2.6): prove that c0 cannot be equal to 1.
39 Lists List of elements of sort S: List(S) Signature: const [] : List(S); : S List(S) List(S); maps in : S List(S) Bool # : List(S) N : List(S) S List(S); head : List(S) S; tail : List(S) List(S);.
40 Lists List enumeration: [s 0, s 1,...] is an acronym for s 0 s 1... []. Exercise: give the equations for.
41 Sets and Bags Set of elements of sort S: Set(S) (N.B. sets can be infinite) 1. enumeration: {s 0, s 1,...} 2. comprehension: {x : S φ} Example: {n : N m : N.m + m = n}. 3. membership s 0 set Bag of elements of sort S: Bag(S) 1. enumeration: {s 0 : n 0, s 1 : n 1,...} 2. count: count(s 0, bag) Exercise (3.2.10): Specify the set of all prime numbers (given the maps mod and ).
Data types for mcrl2
Data types for mcrl2 Aad Mathijssen April 5, 2018 We provide a syntax for the standard data types of the mcrl2 language. This syntax is intended to be a practical mix between standard mathematical notation
More informationCSE 215: Foundations of Computer Science Recitation Exercises Set #4 Stony Brook University. Name: ID#: Section #: Score: / 4
CSE 215: Foundations of Computer Science Recitation Exercises Set #4 Stony Brook University Name: ID#: Section #: Score: / 4 Unit 7: Direct Proof Introduction 1. The statement below is true. Rewrite the
More informationCS 456 (Fall 2018) Scribe Notes: 2
CS 456 (Fall 2018) Scribe Notes: 2 Albert Yu, Adam Johnston Lists Bags Maps Inductive data type that has an infinite collection of elements Not through enumeration but inductive type definition allowing
More informationFoundations of Computer Science Spring Mathematical Preliminaries
Foundations of Computer Science Spring 2017 Equivalence Relation, Recursive Definition, and Mathematical Induction Mathematical Preliminaries Mohammad Ashiqur Rahman Department of Computer Science College
More information9.5 Equivalence Relations
9.5 Equivalence Relations You know from your early study of fractions that each fraction has many equivalent forms. For example, 2, 2 4, 3 6, 2, 3 6, 5 30,... are all different ways to represent the same
More informationBuilt-in Module BOOL. Lecture Note 01a
Built-in Module BOOL Lecture Note 01a Topics! Built-in Boolean Algebra module BOOL and the equivalence of two boolean expressions (or SAT problems)! Study important concepts about CafeOBJ system through
More informationShell CSCE 314 TAMU. Haskell Functions
1 CSCE 314: Programming Languages Dr. Dylan Shell Haskell Functions 2 Outline Defining Functions List Comprehensions Recursion 3 Conditional Expressions As in most programming languages, functions can
More informationCSCE 314 TAMU Fall CSCE 314: Programming Languages Dr. Flemming Andersen. Haskell Functions
1 CSCE 314: Programming Languages Dr. Flemming Andersen Haskell Functions 2 Outline Defining Functions List Comprehensions Recursion 3 Conditional Expressions As in most programming languages, functions
More informationDiscrete Mathematics Lecture 4. Harper Langston New York University
Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a
More information14 Foundation of Programming Languages and Software Engineering: Summer Term 2010
14 Foundation of Programming Languages and Software Engineering: Abstract Data Types Summer Term 2010 Robert Elsässer Abstract data types 09.06.2010 Theory 1 - Foundation of Programming Languages and Software
More informationExercise 1 (2+2+2 points)
1 Exercise 1 (2+2+2 points) The following data structure represents binary trees only containing values in the inner nodes: data Tree a = Leaf Node (Tree a) a (Tree a) 1 Consider the tree t of integers
More informationthe Common Algebraic Specification Language
Introduction to CASL, the Common Algebraic Specification Language Franz Lichtenberger Research Institute for Symbolic Computation (RISC) Johannes Kepler University, Linz, Austria Franz.Lichtenberger@risc.uni
More informationProgramming Languages Fall 2014
Programming Languages Fall 2014 Lecture 7: Simple Types and Simply-Typed Lambda Calculus Prof. Liang Huang huang@qc.cs.cuny.edu 1 Types stuck terms? how to fix it? 2 Plan First I For today, we ll go back
More informationThe University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 4 MODULE, SPRING SEMESTER MATHEMATICAL FOUNDATIONS OF PROGRAMMING ANSWERS
The University of Nottingham SCHOOL OF COMPUTER SCIENCE A LEVEL 4 MODULE, SPRING SEMESTER 2012 2013 MATHEMATICAL FOUNDATIONS OF PROGRAMMING ANSWERS Time allowed TWO hours Candidates may complete the front
More information1 Elementary number theory
Math 215 - Introduction to Advanced Mathematics Spring 2019 1 Elementary number theory We assume the existence of the natural numbers and the integers N = {1, 2, 3,...} Z = {..., 3, 2, 1, 0, 1, 2, 3,...},
More informationComputing Fundamentals 2 Introduction to CafeOBJ
Computing Fundamentals 2 Introduction to CafeOBJ Lecturer: Patrick Browne Lecture Room: K408 Lab Room: A308 Based on work by: Nakamura Masaki, João Pascoal Faria, Prof. Heinrich Hußmann. See notes on slides
More informationn n Try tutorial on front page to get started! n spring13/ n Stack Overflow!
Announcements n Rainbow grades: HW1-6, Quiz1-5, Exam1 n Still grading: HW7, Quiz6, Exam2 Intro to Haskell n HW8 due today n HW9, Haskell, out tonight, due Nov. 16 th n Individual assignment n Start early!
More informationGradual Typing with Union and Intersection Types
Gradual Typing with Union and Intersection Types Giuseppe Castagna, Victor Lanvin ICFP 17 September 6, 2017 1 / 14 Outline 1 Motivating Example 2 Types and Subtyping 3 Function Types and Operators 4 Conclusion
More informationOverview. CS389L: Automated Logical Reasoning. Lecture 6: First Order Logic Syntax and Semantics. Constants in First-Order Logic.
Overview CS389L: Automated Logical Reasoning Lecture 6: First Order Logic Syntax and Semantics Işıl Dillig So far: Automated reasoning in propositional logic. Propositional logic is simple and easy to
More informationCSC Discrete Math I, Spring Sets
CSC 125 - Discrete Math I, Spring 2017 Sets Sets A set is well-defined, unordered collection of objects The objects in a set are called the elements, or members, of the set A set is said to contain its
More informationData types. Chapter Data type definition mechanism
Chapter 3 Data types Components of reactive systems often exchange messages containing data items among themselves and with the environment. For example, recall the alarm clock with multiple alarms from
More informationQueues. Lesson 4. CS 32: Data Structures Dept. of Computer Science
Queues Lesson 4 Outline What is a queue? Straight queue Circular Queue Sequential Implementation Linked Implementation Application: Topological sort Deques Final Notes Outline What is a queue? Straight
More informationVerification in Coq. Prof. Clarkson Fall Today s music: Check Yo Self by Ice Cube
Verification in Coq Prof. Clarkson Fall 2017 Today s music: Check Yo Self by Ice Cube Review Previously in 3110: Functional programming in Coq Logic in Coq Curry-Howard correspondence (proofs are programs)
More informationSpecification, Verification, and Interactive Proof
Specification, Verification, and Interactive Proof SRI International May 23, 2016 PVS PVS - Prototype Verification System PVS is a verification system combining language expressiveness with automated tools.
More information[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics
400 lecture note #4 [Ch 6] Set Theory 1. Basic Concepts and Definitions 1) Basics Element: ; A is a set consisting of elements x which is in a/another set S such that P(x) is true. Empty set: notated {
More informationAutomated Reasoning. Natural Deduction in First-Order Logic
Automated Reasoning Natural Deduction in First-Order Logic Jacques Fleuriot Automated Reasoning Lecture 4, page 1 Problem Consider the following problem: Every person has a heart. George Bush is a person.
More informationPROGRAMMING IN HASKELL. CS Chapter 6 - Recursive Functions
PROGRAMMING IN HASKELL CS-205 - Chapter 6 - Recursive Functions 0 Introduction As we have seen, many functions can naturally be defined in terms of other functions. factorial :: Int Int factorial n product
More informationShell CSCE 314 TAMU. Functions continued
1 CSCE 314: Programming Languages Dr. Dylan Shell Functions continued 2 Outline Defining Functions List Comprehensions Recursion 3 A Function without Recursion Many functions can naturally be defined in
More informationLesson 19: The Graph of a Linear Equation in Two Variables is a Line
Lesson 19: The Graph of a Linear Equation in Two Variables is a Line Classwork Exercises Theorem: The graph of a linear equation y = mx + b is a non-vertical line with slope m and passing through (0, b),
More informationCSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter p. 1/27
CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer Science (Arkoudas and Musser) Chapter 2.1-2.7 p. 1/27 CSCI.6962/4962 Software Verification Fundamental Proof Methods in Computer
More informationLogic - CM0845 Introduction to Haskell
Logic - CM0845 Introduction to Haskell Diego Alejandro Montoya-Zapata EAFIT University Semester 2016-1 Diego Alejandro Montoya-Zapata (EAFIT University) Logic - CM0845 Introduction to Haskell Semester
More informationData-Oriented System Development
Data-Oriented System Development Prof. Martin Wirsing 30.10.2002 Refinement Technics The Refinement-Concept: Refinement through Inclusion of Model Classes 2 Goals Refinement of functional requirements:
More informationNatural Numbers. We will use natural numbers to illustrate several ideas that will apply to Haskell data types in general.
Natural Numbers We will use natural numbers to illustrate several ideas that will apply to Haskell data types in general. For the moment we will ignore that fact that each type in Haskell includes possible
More information1 Introduction. 3 Syntax
CS 6110 S18 Lecture 19 Typed λ-calculus 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic semantics,
More information3.4 Deduction and Evaluation: Tools Conditional-Equational Logic
3.4 Deduction and Evaluation: Tools 3.4.1 Conditional-Equational Logic The general definition of a formal specification from above was based on the existence of a precisely defined semantics for the syntax
More informationLecture Notes on Induction and Recursion
Lecture Notes on Induction and Recursion 15-317: Constructive Logic Frank Pfenning Lecture 7 September 19, 2017 1 Introduction At this point in the course we have developed a good formal understanding
More informationEquality for Abstract Data Types
Object-Oriented Design Lecture 4 CSU 370 Fall 2008 (Pucella) Tuesday, Sep 23, 2008 Equality for Abstract Data Types Every language has mechanisms for comparing values for equality, but it is often not
More informationIntroductory logic and sets for Computer scientists
Introductory logic and sets for Computer scientists Nimal Nissanke University of Reading ADDISON WESLEY LONGMAN Harlow, England II Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario
More informationINTRODUCTION TO FUNCTIONAL PROGRAMMING
INTRODUCTION TO FUNCTIONAL PROGRAMMING Graham Hutton University of Nottingham adapted by Gordon Uszkay 1 What is Functional Programming? Opinions differ, and it is difficult to give a precise definition,
More informationProving Properties of Recursive Functions and Data Structures. CS 270 Math Foundations of CS Jeremy Johnson
Proving Properties of Recursive Functions and Data Structures CS 270 Math Foundations of CS Jeremy Johnson 1 Objective To implement and verify recursive functions for processing recursive data structures.
More informationSolving Boolean Equations with BDDs and Clause Forms. Gert Smolka
Solving Boolean Equations with BDDs and Clause Forms Gert Smolka Abstract Methods for solving Boolean equations BDDs [Bryant 1986] Clause forms [Quine 1959] Efficient data structure and algorithms for
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.3 Direct Proof and Counterexample III: Divisibility Copyright Cengage Learning. All rights
More informationTo be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 COPYRIGHT 2011 ALCATEL-LUCENT. ALL RIGHTS RESERVED.
To be or not programmable Dimitri Papadimitriou, Bernard Sales Alcatel-Lucent April 2013 Introduction SDN research directions as outlined in IRTF RG outlines i) need for more flexibility and programmability
More informationThe Strange Case of Dr. Admissibility and Mr. Derive
The Strange Case of Dr. Admissibility and Mr. Derive Dan Licata Joint work with Noam Zeilberger and Robert Harper 1 2 Goal A programming language that helps people: Define programming languages and logics
More informationELEMENTARY NUMBER THEORY AND METHODS OF PROOF
CHAPTER 4 ELEMENTARY NUMBER THEORY AND METHODS OF PROOF Copyright Cengage Learning. All rights reserved. SECTION 4.3 Direct Proof and Counterexample III: Divisibility Copyright Cengage Learning. All rights
More information1 Elementary number theory
1 Elementary number theory We assume the existence of the natural numbers and the integers N = {1, 2, 3,...} Z = {..., 3, 2, 1, 0, 1, 2, 3,...}, along with their most basic arithmetical and ordering properties.
More information1.1 - Introduction to Sets
1.1 - Introduction to Sets Math 166-502 Blake Boudreaux Department of Mathematics Texas A&M University January 18, 2018 Blake Boudreaux (Texas A&M University) 1.1 - Introduction to Sets January 18, 2018
More informationDeclaring Numbers. Bernd Braßel, Frank Huch and Sebastian Fischer. Department of Computer Science, University of Kiel, Germany
Declaring Numbers Bernd Braßel, Frank Huch and Sebastian Fischer Department of Computer Science, University of Kiel, Germany WFLP 2007, Paris, France I m going to present joint work with my colleagues
More informationBOBJ: A Quickstart for Software Engineers
BOBJ: A Quickstart for Software Engineers Lutz Hamel Dept. of Computer Science and Statistics University of Rhode Island Kingston, RI 02881 hamel@cs.uri.edu DRAFT 12/7/03 Getting Started BOBJ is a specification
More informationTHE AGDA STANDARD LIBRARY
THE AGDA STANDARD LIBRARY N. P. STRICKLAND 1. Introduction In this document we give a survey of the structure, organisation and contents of the Agda standard library. We will mostly ignore foundational
More informationCHAPTER 8. Copyright Cengage Learning. All rights reserved.
CHAPTER 8 RELATIONS Copyright Cengage Learning. All rights reserved. SECTION 8.3 Equivalence Relations Copyright Cengage Learning. All rights reserved. The Relation Induced by a Partition 3 The Relation
More information3.7 Denotational Semantics
3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These
More informationRecursion and Induction
Recursion and Induction Paul S. Miner NASA Langley Formal Methods Group p.s.miner@nasa.gov 28 November 2007 Outline Recursive definitions in PVS Simple inductive proofs Automated proofs by induction More
More informationLast class. CS Principles of Programming Languages. Introduction. Outline
Last class CS6848 - Principles of Programming Languages Principles of Programming Languages V. Krishna Nandivada IIT Madras Interpreters A Environment B Cells C Closures D Recursive environments E Interpreting
More informationMath 55 - Spring 04 - Lecture notes # 1 - Jan 20 (Tuesday)
Math 55 - Spring 04 - Lecture notes # 1 - Jan 20 (Tuesday) Name, class, URL (www.cs.berkeley.edu/~demmel/ma55) on board Head TA Mike West speaks on bureaucracy Advertise CS 70 (T Th 2-3:30) as an "honors"
More informationHashing. Yufei Tao. Department of Computer Science and Engineering Chinese University of Hong Kong
Department of Computer Science and Engineering Chinese University of Hong Kong In this lecture, we will revisit the dictionary search problem, where we want to locate an integer v in a set of size n or
More informationCS 6110 S11 Lecture 25 Typed λ-calculus 6 April 2011
CS 6110 S11 Lecture 25 Typed λ-calculus 6 April 2011 1 Introduction Type checking is a lightweight technique for proving simple properties of programs. Unlike theorem-proving techniques based on axiomatic
More informationSlides for Faculty Oxford University Press All rights reserved.
Oxford University Press 2013 Slides for Faculty Assistance Preliminaries Author: Vivek Kulkarni vivek_kulkarni@yahoo.com Outline Following topics are covered in the slides: Basic concepts, namely, symbols,
More information36 Modular Arithmetic
36 Modular Arithmetic Tom Lewis Fall Term 2010 Tom Lewis () 36 Modular Arithmetic Fall Term 2010 1 / 10 Outline 1 The set Z n 2 Addition and multiplication 3 Modular additive inverse 4 Modular multiplicative
More informationGADTs. Wouter Swierstra. Advanced functional programming - Lecture 7. Faculty of Science Information and Computing Sciences
GADTs Advanced functional programming - Lecture 7 Wouter Swierstra 1 Today s lecture Generalized algebraic data types (GADTs) 2 A datatype data Tree a = Leaf Node (Tree a) a (Tree a) This definition introduces:
More informationDenotational Semantics. Domain Theory
Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning
More informationVerifying Safety Property of Lustre Programs: Temporal Induction
22c181: Formal Methods in Software Engineering The University of Iowa Spring 2008 Verifying Safety Property of Lustre Programs: Temporal Induction Copyright 2008 Cesare Tinelli. These notes are copyrighted
More informationFunctional Programming. Overview. Topics. Definition n-th Fibonacci Number. Graph
Topics Functional Programming Christian Sternagel Harald Zankl Evgeny Zuenko Department of Computer Science University of Innsbruck WS 2017/2018 abstract data types, algebraic data types, binary search
More informationProgramming Languages
CSE 230: Winter 2008 Principles of Programming Languages Ocaml/HW #3 Q-A Session Push deadline = Mar 10 Session Mon 3pm? Lecture 15: Type Systems Ranjit Jhala UC San Diego Why Typed Languages? Development
More informationNgày 9 tháng 12 năm Discrete Mathematics Lecture-15
Discrete Mathematics Lecture-15 Ngày 9 tháng 12 năm 2011 ex ex ex a 1 mod b (gcd(a,b) = 1) ex a 1 mod b (gcd(a,b) = 1) Returns an integer c < b such that a c mod b = 1. ex a 1 mod b (gcd(a,b) = 1) Returns
More informationSets and set operations. Lecture 5 ICOM 4075
Sets and set operations Lecture 5 ICOM 4075 Reviewing sets s defined in a previous lecture, a setis a collection of objects that constitute the elementsof the set We say that a set containsits elements,
More informationLesson 4 Typed Arithmetic Typed Lambda Calculus
Lesson 4 Typed Arithmetic Typed Lambda 1/28/03 Chapters 8, 9, 10 Outline Types for Arithmetic types the typing relation safety = progress + preservation The simply typed lambda calculus Function types
More informationA CRASH COURSE IN SEMANTICS
LAST TIME Recdef More induction NICTA Advanced Course Well founded orders Slide 1 Theorem Proving Principles, Techniques, Applications Slide 3 Well founded recursion Calculations: also/finally {P}... {Q}
More informationQuestions? Static Semantics. Static Semantics. Static Semantics. Next week on Wednesday (5 th of October) no
Questions? First exercise is online: http://www.win.tue.nl/~mvdbrand/courses/glt/1112/ Deadline 17 th of October Next week on Wednesday (5 th of October) no lectures!!! Primitive types Primitive value
More informationCIS 194: Homework 8. Due Wednesday, 8 April. Propositional Logic. Implication
CIS 194: Homework 8 Due Wednesday, 8 April Propositional Logic In this section, you will prove some theorems in Propositional Logic, using the Haskell compiler to verify your proofs. The Curry-Howard isomorphism
More informationProgramming in Omega Part 1. Tim Sheard Portland State University
Programming in Omega Part 1 Tim Sheard Portland State University Tim Sheard Computer Science Department Portland State University Portland, Oregon PSU PL Research at Portland State University The Programming
More informationType families and data kinds
Type families and data kinds AFP Summer School Wouter Swierstra 1 Today How do GADTs work? Kinds beyond * Programming with types 2 Calling functions on vectors Given two vectors xs : Vec a n and ys : Vec
More informationHaskell 98 in short! CPSC 449 Principles of Programming Languages
Haskell 98 in short! n Syntax and type inferencing similar to ML! n Strongly typed! n Allows for pattern matching in definitions! n Uses lazy evaluation" F definition of infinite lists possible! n Has
More informationChapter 22: Type Reconstruction (Type Inference)
Chapter 22: Type Reconstruction (Type Inference) Calculating a Principal Type for a Term Constraint based Typing Unification and Principle Types Extension with let-polymorphism Type Variables and Type
More informationCS 320: Concepts of Programming Languages
CS 320: Concepts of Programming Languages Wayne Snyder Computer Science Department Boston University Lecture 03: Bare-Bones Haskell Continued: o Function Application = Rewriting by Pattern Matching o Haskell
More informationInduction in Coq. Nate Foster Spring 2018
Induction in Coq Nate Foster Spring 2018 Review Previously in 3110: Functional programming in Coq Logic in Coq Curry-Howard correspondence (proofs are programs) Today: Induction in Coq REVIEW: INDUCTION
More informationCOMPUTABILITY THEORY AND RECURSIVELY ENUMERABLE SETS
COMPUTABILITY THEORY AND RECURSIVELY ENUMERABLE SETS JOSHUA LENERS Abstract. An algorithm is function from ω to ω defined by a finite set of instructions to transform a given input x to the desired output
More informationIntroduction to Functional Programming in Haskell 1 / 56
Introduction to Functional Programming in Haskell 1 / 56 Outline Why learn functional programming? The essence of functional programming What is a function? Equational reasoning First-order vs. higher-order
More informationReview of Sets. Review. Philippe B. Laval. Current Semester. Kennesaw State University. Philippe B. Laval (KSU) Sets Current Semester 1 / 16
Review of Sets Review Philippe B. Laval Kennesaw State University Current Semester Philippe B. Laval (KSU) Sets Current Semester 1 / 16 Outline 1 Introduction 2 Definitions, Notations and Examples 3 Special
More informationHigher-Order Logic. Specification and Verification with Higher-Order Logic
Higher-Order Logic Specification and Verification with Higher-Order Logic Arnd Poetzsch-Heffter (Slides by Jens Brandt) Software Technology Group Fachbereich Informatik Technische Universität Kaiserslautern
More informationIA014: Advanced Functional Programming
IA014: Advanced Functional Programming 8. GADT Generalized Algebraic Data Types (and type extensions) Jan Obdržálek obdrzalek@fi.muni.cz Faculty of Informatics, Masaryk University, Brno Motivation IA014
More informationLECTURE 8: SETS. Software Engineering Mike Wooldridge
LECTURE 8: SETS Mike Wooldridge 1 What is a Set? The concept of a set is used throughout mathematics; its formal definition matches closely our intuitive understanding of the word. Definition: A set is
More information(a) Give inductive definitions of the relations M N and M N of single-step and many-step β-reduction between λ-terms M and N. (You may assume the
COMPUTER SCIENCE TRIPOS Part IB 205 Paper 6 4 (AMP) (a) Give inductive definitions of the relations M N and M N of single-step and many-step β-reduction between λ-terms M and N. (You may assume the definition
More informationDISCRETE MATHEMATICS
DISCRETE MATHEMATICS WITH APPLICATIONS THIRD EDITION SUSANNA S. EPP DePaul University THOIVISON * BROOKS/COLE Australia Canada Mexico Singapore Spain United Kingdom United States CONTENTS Chapter 1 The
More informationNote that in this definition, n + m denotes the syntactic expression with three symbols n, +, and m, not to the number that is the sum of n and m.
CS 6110 S18 Lecture 8 Structural Operational Semantics and IMP Today we introduce a very simple imperative language, IMP, along with two systems of rules for evaluation called small-step and big-step semantics.
More informationModule 11. Directed Graphs. Contents
Module 11 Directed Graphs Contents 11.1 Basic concepts......................... 256 Underlying graph of a digraph................ 257 Out-degrees and in-degrees.................. 258 Isomorphism..........................
More informationCS 320: Concepts of Programming Languages
CS 320: Concepts of Programming Languages Wayne Snyder Computer Science Department Boston University Lecture 04: Basic Haskell Continued o Polymorphic Types o Type Inference with Polymorphism o Standard
More informationAn Introduction to Programming and Proving in Agda (incomplete draft)
An Introduction to Programming and Proving in Agda (incomplete draft) Peter Dybjer January 29, 2018 1 A first Agda module Your first Agda-file is called BoolModule.agda. Its contents are module BoolModule
More informationPick s Theorem and Lattice Point Geometry
Pick s Theorem and Lattice Point Geometry 1 Lattice Polygon Area Calculations Lattice points are points with integer coordinates in the x, y-plane. A lattice line segment is a line segment that has 2 distinct
More informationCIS 500: Software Foundations
CIS 500: Software Foundations Midterm I October 3, 2017 Name (printed): Username (PennKey login id): My signature below certifies that I have complied with the University of Pennsylvania s Code of Academic
More informationUnit 7 Number System and Bases. 7.1 Number System. 7.2 Binary Numbers. 7.3 Adding and Subtracting Binary Numbers. 7.4 Multiplying Binary Numbers
Contents STRAND B: Number Theory Unit 7 Number System and Bases Student Text Contents Section 7. Number System 7.2 Binary Numbers 7.3 Adding and Subtracting Binary Numbers 7.4 Multiplying Binary Numbers
More informationCOMP 507: Computer-Aided Program Design
Fall 2014 April 7, 2015 Goal: Correctness proofs Prove that an algorithm written in an imperative language is correct Induction for algorithmic correctness Induction for functional programs: The program
More informationGADTs. Wouter Swierstra and Alejandro Serrano. Advanced functional programming - Lecture 7. [Faculty of Science Information and Computing Sciences]
GADTs Advanced functional programming - Lecture 7 Wouter Swierstra and Alejandro Serrano 1 Today s lecture Generalized algebraic data types (GADTs) 2 A datatype data Tree a = Leaf Node (Tree a) a (Tree
More informationThe Java Type System (continued)
Object-Oriented Design Lecture 5 CSU 370 Fall 2007 (Pucella) Friday, Sep 21, 2007 The Java Type System (continued) The Object Class All classes subclass the Object class. (By default, this is the superclass
More informationPROGRAMMING IN HASKELL. Chapter 5 - List Comprehensions
PROGRAMMING IN HASKELL Chapter 5 - List Comprehensions 0 Set Comprehensions In mathematics, the comprehension notation can be used to construct new sets from old sets. {x 2 x {1...5}} The set {1,4,9,16,25}
More informationProgramming Languages 3. Definition and Proof by Induction
Programming Languages 3. Definition and Proof by Induction Shin-Cheng Mu Oct. 22, 2015 Total Functional Programming The next few lectures concerns inductive definitions and proofs of datatypes and programs.
More information11 Sets II Operations
11 Sets II Operations Tom Lewis Fall Term 2010 Tom Lewis () 11 Sets II Operations Fall Term 2010 1 / 12 Outline 1 Union and intersection 2 Set operations 3 The size of a union 4 Difference and symmetric
More informationIII Data Structures. Dynamic sets
III Data Structures Elementary Data Structures Hash Tables Binary Search Trees Red-Black Trees Dynamic sets Sets are fundamental to computer science Algorithms may require several different types of operations
More information1.3. Conditional expressions To express case distinctions like
Introduction Much of the theory developed in the underlying course Logic II can be implemented in a proof assistant. In the present setting this is interesting, since we can then machine extract from a
More informationMath Introduction to Advanced Mathematics
Math 215 - Introduction to Advanced Mathematics Number Theory Fall 2017 The following introductory guide to number theory is borrowed from Drew Shulman and is used in a couple of other Math 215 classes.
More information