T YPE I SOMORPHISM O LA M AHMOUD S UPERVISED BY : D R. M ARCELO F IORE UNIVERSITY OF CAMBRIDGE Computer Laboratory Theory & Semantics Group I NTRODUCTION.

Slides:



Advertisements
Similar presentations
PSL and SWSL Michael Gruninger Institute for Systems Research University of Maryland Michael Gruninger Institute for Systems Research University of Maryland.
Advertisements

Introduction The concept of transform appears often in the literature of image processing and data compression. Indeed a suitable discrete representation.
Semantics Static semantics Dynamic semantics attribute grammars
1 Turing Machines and Equivalent Models Section 13.2 The Church-Turing Thesis.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Event structures Mauro Piccolo. Interleaving Models Trace Languages:  computation described through a non-deterministic choice between all sequential.
8. Introduction to Denotational Semantics. © O. Nierstrasz PS — Denotational Semantics 8.2 Roadmap Overview:  Syntax and Semantics  Semantics of Expressions.
1 A Description Logic with Concrete Domains CS848 presentation Presenter: Yongjuan Zou.
Lecture 6 Hyperreal Numbers (Nonstandard Analysis)
Fall Semantics Juan Carlos Guzmán CS 3123 Programming Languages Concepts Southern Polytechnic State University.
CS 355 – Programming Languages
Foundations of Interaction ETAPS `05 0 Ex nihilo: a reflective higher- order process calculus The  -calculus L.G. Meredith 1 & Matthias Radestock.
Computability and Complexity 5-1 Classifying Problems Computability and Complexity Andrei Bulatov.
Comp 205: Comparative Programming Languages Semantics of Imperative Programming Languages denotational semantics operational semantics logical semantics.
School of Computing and Mathematics, University of Huddersfield CAS810: WEEK 3 LECTURE: LAMBDA CALCULUS PRACTICAL/TUTORIAL: (i) Do exercises given out.
Language Specfication and Implementation - PART II: Semantics of Procedural Programming Languages Lee McCluskey Department of Computing and Mathematical.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
PSUCS322 HM 1 Languages and Compiler Design II Formal Semantics Material provided by Prof. Jingke Li Stolen with pride and modified by Herb Mayer PSU Spring.
C SC 520 Principles of Programming Languages 1 C SC 520: Principles of Programming Languages Peter J. Downey Department of Computer Science Spring 2006.
Chapter 3 Describing Syntax and Semantics Sections 1-3.
Modeling a Service and Session Calculus with Hierarchical Graph Transformation Roberto Bruni, Andrea Corradini, Ugo Montanari (based on joint work with.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
An algebra of Connectors for modeling CommUnity with Tiles joint work with Roberto Bruni Ugo Montanari Dipartimento di Informatica Università di Pisa Ivan.
The Relationship between Topology and Logic Dr Christopher Townsend (Open University)
Category Theory By: Ashley Reynolds. HISTORY OF CATEGORY THEORY  In 1942–45, Samuel Eilenberg and Saunders Mac Lane introduced categories, functors,
Syntax & Semantic Introduction Organization of Language Description Abstract Syntax Formal Syntax The Way of Writing Grammars Formal Semantic.
XPath and Beyond: Formal Foundations Xerox Research Centre Europe / INRIA Jean-Yves Vion-Dury Xerox Research Centre Europe / INRIA INRIA Pierre Genevès.
Chapter 6: Applying the PSSH. Cognitive Science  José Luis Bermúdez / Cambridge University Press 2010 Overview Explain why ID3 and SHAKEY both count.
Math 3121 Abstract Algebra I Section 0: Sets. The axiomatic approach to Mathematics The notion of definition - from the text: "It is impossible to define.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
LDK R Logics for Data and Knowledge Representation Modeling First version by Alessandro Agostini and Fausto Giunchiglia Second version by Fausto Giunchiglia.
Cs7120 (Prasad)L9-RECUR-IND1 Recursion and Induction.
Logic. Mathematical logic is a subfield of mathematics exploring the applications of formal logic to mathematics. Topically, mathematical logic bears.
Categories and Computer Science
ISBN Chapter 3 Describing Semantics -Attribute Grammars -Dynamic Semantics.
CS 345: Chapter 8 Noncomputability and Undecidability Or Sometimes You Can’t Get It Done At All.
Formal Specification of Intrusion Signatures and Detection Rules By Jean-Philippe Pouzol and Mireille Ducassé 15 th IEEE Computer Security Foundations.
© Kenneth C. Louden, Chapter 11 - Functional Programming, Part III: Theory Programming Languages: Principles and Practice, 2nd Ed. Kenneth C. Louden.
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
ISBN Chapter 3 Describing Semantics.
Chapter 3 Part II Describing Syntax and Semantics.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Semantics In Text: Chapter 3.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Ceg860 (Prasad)LADT1 Specification and Implementation of Abstract Data Types Algebraic Techniques.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
Boolean Algebra and Computer Logic Mathematical Structures for Computer Science Chapter 7.1 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesBoolean Algebra.
CS6133 Software Specification and Verification
Mathematical Preliminaries
Weak Bisimilarity Coalgebraically Andrei Popescu Department of Computer Science University of Illinois.
ISBN Chapter 3 Describing Syntax and Semantics.
1. Outline I. Specification and Definition II. Typed Predicate Logic III. Specification in TPL IV. Theories off Types V. Polymorphic Specifications VI.
1 First order theories (Chapter 1, Sections 1.4 – 1.5) From the slides for the book “Decision procedures” by D.Kroening and O.Strichman.
MSG Reuse Catalog T.W. van den Berg 7 April 2010.
CSC3315 (Spring 2009)1 CSC 3315 Languages & Compilers Hamid Harroud School of Science and Engineering, Akhawayn University
Boolean Algebra and Computer Logic Mathematical Structures for Computer Science Chapter 7 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesBoolean Algebra.
The Church-Turing Thesis Chapter Are We Done? FSM  PDA  Turing machine Is this the end of the line? There are still problems we cannot solve:
Theory of Computation. Introduction to The Course Lectures: Room ( Sun. & Tue.: 8 am – 9:30 am) Instructor: Dr. Ayman Srour (Ph.D. in Computer Science).
Rewriting Nested Graphs, through Term Graphs Roberto Bruni, Andrea Corradini, Fabio Gadducci Alberto Lluch Lafuente and Ugo Montanari Dipartimento di Informatica,
Describing Syntax and Semantics
Spring 2017 Program Analysis and Verification
Copyright © Cengage Learning. All rights reserved.
Syntax Questions 6. Define a left recursive grammar rule.
High-Level Abstraction of Concurrent Finite Automata
A Design Structure for Higher Order Quotients
Denotational Semantics (Denotational Semantics)
Formal Methods in software development
Teori Bahasa dan Automata Lecture 9: Contex-Free Grammars
Sub: Theoretical Foundations of Computer Sciences
Presentation transcript:

T YPE I SOMORPHISM O LA M AHMOUD S UPERVISED BY : D R. M ARCELO F IORE UNIVERSITY OF CAMBRIDGE Computer Laboratory Theory & Semantics Group I NTRODUCTION & M OTIVATION G ENERIC R ECURSIVE P OLYNOMIAL T YPES C ATEGORICAL T YPE T HEORY F UTURE D IRECTIONS Isomorphism The familiar notion of isomorphism (from Greek isos morphe meaning same shape) refers to an invertible mapping between two objects making them in some sense structurally equivalent: A B Theoretic Motivation Complete Axiomatization: Complete Axiomatization: As is common in Mathematical Logic, we seek a complete axiom system E for a given type theory Th, i.e. a finite set of ismorphisms of the form T S such that two types are isomorphic in Th iff they can be proven to be isomorphic using only the identities appearing in E. Explicit Decidability: Explicit Decidability: providing non-exhaustive methods (possibly algorithms) for constructing explicit isomorphisms, when they exist Practical Applications Types as search keys : using type isomorphism as a key tool for retrieving library components Inside Type Systems : performing transformations of data types inside a programming language via isomorphism We are interested in the isomorphisms of types in some abstract programming language. Two types are isomorphic if there are mutually inverse procedures for transforming data between them. For example, for the sum type constructor + we know that T + S S + T, and T + 0 T, etc. Category Theory Category Theory is often referred to as the Mathematics of Mathematics. It will be our main tool for proving isomorphisms. DEFINITION DEFINITION: A category C consists of (1) a collection of objects; (2) a collection of relations (arrows) between the objects; (3) for f : A B and g:B C the composition g f ; (4) for every object A the identity arrow; such that for all f, f id = f = id f and for all f,g,h, f (g h) = (f g) h. Why Category Theory? It gives an elegant formalization of the description of mathematical structures (type theories) via universal properties It provides an abstract way for reasoning about theories Categories can be used as models for certain structures/theories, providing syntactic-hygiene and a better understanding of the syntax, semantics and logic of a theory Categorical Type Theory Correspondence There is a correspondence between type theories and categories, enabling us to see the latter as giving an abstract, or presentation-free, semantics of a type theory. For a given theory Th, it is possible to construct a category Cl(Th) which contains in some sense the smallest or most general model of Th. We call it the classifying category of the theory Th. Using the above correspondence, we want to classify isomorphisms in Cl(Th R ), for Th R the theory of generic resursive polynomial types. TYPE THEORY Th Cl(Th) Th(C) C CATEGORY THEORY generic recursive polynomial types, Our current focus is type isomorphism in the context of generic recursive polynomial types, more specifically: recursively defined types of the form ρX.P(X), i.e. the type representing the solution of the equation X P(X), where P(X) is a multivariate polynomial type, i.e. one built out of the sum and product type constructors; that are generic in the sense that the only operations for manipulating them are those of folding and unfolding. Formal definition of the Type Theory The type theory of sums, products, and generic recursive types has types given by the following grammar: T := X | 0 | T 1 + T 2 | 1 | T 1 × T 2 | ρX.T Motivation Recursively defined types occur naturally in programming languages (lists, trees, etc.) Isomorphisms in this restricted setting are realisable by finitistic programs Preliminary Results The equational theory of polynomial types and of polynomial type theory with one recursive type only is completely axiomatized by the equational theory of the polynomial semiring N[X] and by that of the quotient polynomial semiring N[X]/X P(X), respectively. This result is due to Robbie Gates. Result we seek THEOREM THEOREM: Two generic mutually recursive polynomial types are isomorphic iff they are provably equal in the equational theory of commutative semirings with the equations X i P i (X) Other Construct the classifying category of recursive polynomial type theory Characterize isomorphisms of other type theories, e.g. lambda calculus plus recursive types Formalize reasoning about categorical isomorphisms f f g id B id A A B