A Categorical Model for a Versioning File System

Size: px
Start display at page:

Download "A Categorical Model for a Versioning File System"

Transcription

1 A Categorical Model for a Versioning File System Eduardo S. L. Gastal Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) Caixa Postal Porto Alegre RS Brazil eslgastal@inf.ufrgs.br Abstract. Category Theory is known to have a large level of abstraction. While some can see this as a weak point, others have proved that we can use this to our advantage. In this paper, we try to approach the file system design with a categorical perspective. 1. Introduction Some time ago there was a big phase shift in computing. Computers became much cheaper then they were before, and users became the most important aspect of any developed software; in particular, operating systems. The problem now was that users needed their data and programs around while using the computer. The solution was the development of file systems for quick and easy access to stored data. File systems are implemented with storage, hierarchical organization, manipulation, navigation, access, and retrieval of data in mind. Traditional file systems often work with an underlying data storage device, which provides access to an array of data-blocks. The file system software is responsible for the logical organization of such blocks (i.e., in files and directories) and for keeping relevant metadata stored for future use. However, file systems are not restricted to physically stored data, a common example are network file systems such as NFS and SMB. When working with valuable data, it is often desired that subsequent changes made to a file be stored, ensuring that no information gets lost due to user or system error. As storage space is getting cheaper by the day, it thus makes perfect sense for the file system to use some of this cheap storage to retain file modification history, guaranteeing that mistakenly removed or overwritten information can be retrieved easily. Versioning file systems serve this purpose, and are often transparent for the user. Here, we will develop a high level model for a versioning file system. For this, category theory will be our ally and all low level details shall get abstracted away. 2. The Basis The most basic organization we can think for a file system is a set of files with no order or classification. We will use this as our starting point. The primary property we need is versioning. We need a way for storing the history of our data. As we are dealing with sets (for the time being) we must relate the current state S i with the next state S i+1 of our files (we use state as in state in time ), so let us establish a relation between these two states, and let s call this relation H i.

2 Figure 1. Left: The deletion of d gives us a problem of undefined behavior. Right: The solution adding a trash file. Figure 2. Definition of H i We would clearly like H i to be functional and total this will ease our transition to the categorical view later on. As can be seen in Figure 1 (left), the deletion of file d makes H 0 a partial function. To solve this, we create a pseudo-file T that we will call trash file. All files that get deleted will relate with it trough H i. We should also notice that the creation of file c results in no problem. The final definition for H 0 can be seen in Figure 2. So far we have been working with pure sets. Now, let us translate this to a more categorical perspective. 3. Categorical View We are coming from a set theoretic model, so here we will work with a subcategory of Set where all objects are sets, and all morphisms are functions. The first step we can make is calling S i objects (as they are sets) and H i morphisms (functions). Now we need a way of defining the contents of each state. As morphisms are the best form of expression we have, let us focus on them. If we add a new object called {*} representing a unary set, observe that we can then define N functions with domain in {*} and codomain in S i, where N is the number of elements in S i (i.e., its cardinal). What we have just done is defining the files in state S i as morphisms from {*} to S i. We can now say that m:{*} S i represents file m from S i as morphism! (Please note that in Figure 3, and others, we are using repeated morphism names for clarity in understanding).

3 Figure 3. Left: The inside meaning of each function. Right: Notice how we do not lose any information with this representation. Observing our model up to this point, we already have a nice property in our hands, which is presented below Monomorphism No file deletion It can be easily seen that if our history morphism H i is a monomorphism, then no files have been removed when transitioning from state S i to state S i+1. We will prove this in two steps: first we prove that file deletion results in a non monic H i, second we prove that no file deletion results in a monic H i. Figure 4. File deletion No monomorphism Figure 4 illustrates the first step: at (1) we are just differentiating both trash morphisms. In (2) we state that for any file f in S i (different from our trash-file), then there exists morphism :{*} S i (different from our trash-morphism) that defines f. Finally, in (3) we conclude that, if f is being deleted, then the diagram formed by *, S i and S i+1 commutes, but, so H i is not monomorphism. Figure 5. No file deletion Monomorphism The second step is easier: Analyzing Figure 2 and 3, we can infer that whenever there is no file deletion, H i is an injective function. Figure 5 illustrates the remaining of

4 the proof: for any two files f 1 and f 2, if their composition with H i is the same then f 1 = f 2 and H i is monomorphism. After proving that H i is monomorphism if and only if there are no files being deleted, we wonder if there exists a similar connection between epimorphisms and file creation. With some careful inspection, we notice that this connection does not exist in our current model. For this purpose, we will create a new helper object (called {+,-} and representing a binary set) and add all possible functions from our history states to this set. Like so, we can then present this new property Epimorphism No file creation Again we will prove using two steps: first we prove that file creation results in a H i not being epimorphism, second we prove that no file creation results in H i being epimophism. Figure 6. File creation No epimorphism First step is as follows: for f a file being created, we can define two functions g 1 and g 2 such that g 1 g 2 and, when composed with H i, the diagram formed by S i, S i+1 and {+,-} commutes, proving that H i is not epimorphism. Figure 7. No file creation Epimorphism In the second step, we note that if a file is not being created, then it exists in both states S i and S i+1 (we use f 1 and f 2 to differentiate between these two states, but they refer to the same file f). Then, if the diagram formed by S i, S i+1 and {+,-} commutes, we have that g 1 = g 2 and Hi is epimorphism. Illustrated in Figure 8 is what we have so far. Please note that we will not represent compositions and identities for the sake of clarity. (Even though some compositions have meaning to our model, such as H 1 H 0 representing the transition from S 0 directly to S 2 ).

5 Figure 8. Our model so far Now that we have this basic model on our hands, let us start adding other necessary functionalities to our system. 4. File properties The same way our special object {*} can be seen as the representation of property existence, we can think of other properties that our files may have. For instance, on multi-user systems, it is often required that file permissions (read, write and execute) be stored on the file system. To create a new property, we add an object isomorphic to a unary set (same as {*}) and give it a name, such as Read. We now need to identify all files that have this property; for this, we use morphisms. If we want file f to have the Read property, we create a morphism f R from our property-object Read to the history state of f. As we re working under a subcategory of Set, f R is a function defined as f R : Read S i where f R (x) = f, x Є Read ( Read is a unary set). This is illustrated in Figure 9. One thing that should be noticed is that the trash-file should always have all properties. This is due to morphism composition. For instance, if file f is being deleted in the transition between S i and S i+1, it will be collapsed under our trash-file, taking all its properties with it. So, we need a morphism from our property-object (e.g. Read ) to S i+1, representing the composition H i f R. Figure 9. Example of read and write properties: file f is read-only

6 5. Directory hierarchy One important organization feature we are missing is directories. A typical file system contains thousands of files, and directories help organize them by keeping related files together. Directories can also contain other directories inside them, called subdirectories. Together, all directories form a directory hierarchy. But how do we add directories to our model? A directory is not a file, so it should not be in our history-states. However, a directory can be seen as a property. So, to create directories, we create properties (as defined in Section 4) and use morphisms to list its files. Notice that, the same way our trash-file must have all properties, all our directories must contain a trash-file. Now we have directories and files under those directories, but we re still missing a hierarchy between these directories. As always, let us use morphisms for that. If we want directory Paul to be a subdirectory of Users, we create a morphism from object Users to object Paul. That s it! Finally, we will add another special object to this construction, and we will call it the root-directory object. All other directories will be a subdirectory of this rootdirectory. We can easily see that our special object {*} can represent this root directory! Figure 10. Example of directories In Figure 10, we illustrate an example where the users John and Paul each have a directory under the Users directory. Initially, John has file a and Paul has no files. Paul then creates file b (H 0 ), and then John deletes his file a (H 1 ). In green we have some (not all) of the compositions drawn. Notice that our special object {*} still represents existence of all files in our system. Analyzing our definition of directories as properties, we can observe that more than one directory can have an arrow to the same file. This may seem erroneous at first, but this is a known feature of modern file systems, called hard links. A hard link is nothing but a reference, or pointer, to the physical file data. That is, the same data can be associated with multiple names, and this names can even be stored in different locations.

7 6. Directory history The categorical model we are developing is for a versioning file system. Our files already have history mappings, but our directory hierarchy does not. We must then find a way to represent directory creation and deletion in our file system. Since S i and S i+1 represent sets, our history morphism H i represents a function. Now, the states we are trying to relate (directories states D i ) are not sets, but categories. So our directory history morphism will be represented by a functor F i :D i D i+1, i.e., a mapping between categories. The definition of F i must treat two conditions: creation and deletion of directories. Directory creation is trivial, since our state D i will be a subcategory of D i+1. Directory deletion involves collapsing the directory being removed into its parent directory. Figure 11. Directory history Figure 11 illustrates an example of directory history. Directory John is being removed while directory Users is created. In green we show only the relevant mappings of functor F i (morphisms mapping is trivial), and in red we show the only morphism mapping that might be of some trouble. Once again, compositions and identities are omitted for the sake o clarity. 7. Conclusions In this paper we presented a new approach to file system design using category theory, building all concepts from the ground up. Our primary goal was to design a high level model for a versioning file system, where all relevant modifications are stored, ensuring that no valuable data is ever lost. Our final model is well behaved and is a very rich representation: the amount of information contained within is really overwhelming. Observe also that during the course of this paper no assumption is made about the data being stored. So, by using our model as the high-level organization, we can then think

8 about using a very efficient data structure to arrange all data without worrying about file system structure (e.g. directory hierarchy). Other constructions (such as terminal object, product, limit, equaliser and the notion of dual) may also give us more information we may be missing, but that would require some more research. With category theory being the base of this model, it is easy for knowledge from other models to be brought over to ours, most certainly showing us meanings we may have never thought before. References Menezes, PB. and Haeusler, EH. (2001). Category theory for Computer Science (in portuguese), Sagra Luzzato Publishing, second edition. Santry, DJ., Feeley, MJ and Hutchinson, NC. (U. British Columbia and Hewlett- Packard). "Elephant: The File System that Never Forgets."

THE DOLD-KAN CORRESPONDENCE

THE DOLD-KAN CORRESPONDENCE THE DOLD-KAN CORRESPONDENCE 1. Simplicial sets We shall now introduce the notion of a simplicial set, which will be a presheaf on a suitable category. It turns out that simplicial sets provide a (purely

More information

Core Membership Computation for Succinct Representations of Coalitional Games

Core Membership Computation for Succinct Representations of Coalitional Games Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity

More information

Category Theory & Functional Data Abstraction

Category Theory & Functional Data Abstraction Category Theory & Functional Data Abstraction Brandon Shapiro Math 100b 1. Introduction Throughout mathematics, particularly algebra, there are numerous commonalities between the studies of various objects

More information

A Database of Categories

A Database of Categories A Database of Categories Michael Fleming Department of Computer Science University of Waterloo Waterloo, Ont, Canada Ryan Gunther Department of Computer Science University of Waterloo Waterloo, Ont, Canada

More information

Crash Course in Monads. Vlad Patryshev

Crash Course in Monads. Vlad Patryshev Crash Course in Monads Vlad Patryshev Introduction Monads in programming seem to be the most mysterious notion of the century. I find two reasons for this: lack of familiarity with category theory; many

More information

Configuration Management in the STAR Framework *

Configuration Management in the STAR Framework * 3 Configuration Management in the STAR Framework * Helena G. Ribeiro, Flavio R. Wagner, Lia G. Golendziner Universidade Federal do Rio Grande do SuI, Instituto de Informatica Caixa Postal 15064, 91501-970

More information

Complexity Theory. Compiled By : Hari Prasad Pokhrel Page 1 of 20. ioenotes.edu.np

Complexity Theory. Compiled By : Hari Prasad Pokhrel Page 1 of 20. ioenotes.edu.np Chapter 1: Introduction Introduction Purpose of the Theory of Computation: Develop formal mathematical models of computation that reflect real-world computers. Nowadays, the Theory of Computation can be

More information

6.001 Notes: Section 31.1

6.001 Notes: Section 31.1 6.001 Notes: Section 31.1 Slide 31.1.1 In previous lectures we have seen a number of important themes, which relate to designing code for complex systems. One was the idea of proof by induction, meaning

More information

13 th Annual Johns Hopkins Math Tournament Saturday, February 18, 2012 Explorations Unlimited Round Automata Theory

13 th Annual Johns Hopkins Math Tournament Saturday, February 18, 2012 Explorations Unlimited Round Automata Theory 13 th Annual Johns Hopkins Math Tournament Saturday, February 18, 2012 Explorations Unlimited Round Automata Theory 1. Introduction Automata theory is an investigation of the intersection of mathematics,

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Comparative Analysis of Architectural Views Based on UML

Comparative Analysis of Architectural Views Based on UML Electronic Notes in Theoretical Computer Science 65 No. 4 (2002) URL: http://www.elsevier.nl/locate/entcs/volume65.html 12 pages Comparative Analysis of Architectural Views Based on UML Lyrene Fernandes

More information

Non-overlappingoverlapping. Final outcome of the worked example On pages R&C pages R&C page 157 Fig 3.52

Non-overlappingoverlapping. Final outcome of the worked example On pages R&C pages R&C page 157 Fig 3.52 Objectives Computer Science 202 Database Systems: Entity Relation Modelling To learn what a conceptual model is and what its purpose is. To learn the difference between internal models and external models.

More information

Tecniche di Progettazione: Design Patterns

Tecniche di Progettazione: Design Patterns Tecniche di Progettazione: Design Patterns GoF: Composite 1 Composite pattern Intent Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects

More information

The three faces of homotopy type theory. Type theory and category theory. Minicourse plan. Typing judgments. Michael Shulman.

The three faces of homotopy type theory. Type theory and category theory. Minicourse plan. Typing judgments. Michael Shulman. The three faces of homotopy type theory Type theory and category theory Michael Shulman 1 A programming language. 2 A foundation for mathematics based on homotopy theory. 3 A calculus for (, 1)-category

More information

Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and

Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and Computer Language Theory Chapter 4: Decidability 1 Limitations of Algorithmic Solvability In this Chapter we investigate the power of algorithms to solve problems Some can be solved algorithmically and

More information

Homotopy theory of higher categorical structures

Homotopy theory of higher categorical structures University of California, Riverside August 8, 2013 Higher categories In a category, we have morphisms, or functions, between objects. But what if you have functions between functions? This gives the idea

More information

Category Theory 3. Eugenia Cheng Department of Mathematics, University of Sheffield Draft: 8th November 2007

Category Theory 3. Eugenia Cheng Department of Mathematics, University of Sheffield   Draft: 8th November 2007 Category Theory 3 Eugenia Cheng Department of Mathematics, University of Sheffield E-mail: e.cheng@sheffield.ac.uk Draft: 8th November 2007 Contents 3 Functors: definition and examples 1 3.1 The definition.............................

More information

Topoi: Theory and Applications

Topoi: Theory and Applications : Theory and Applications 1 1 Computer Science, Swansea University, UK http://cs.swan.ac.uk/~csoliver Categorical logic seminar Swansea, March 19+23, 2012 Meaning I treat topos theory as a theory, whose

More information

A MODEL CATEGORY STRUCTURE ON THE CATEGORY OF SIMPLICIAL CATEGORIES

A MODEL CATEGORY STRUCTURE ON THE CATEGORY OF SIMPLICIAL CATEGORIES A MODEL CATEGORY STRUCTURE ON THE CATEGORY OF SIMPLICIAL CATEGORIES JULIA E. BERGNER Abstract. In this paper we put a cofibrantly generated model category structure on the category of small simplicial

More information

14.1 Encoding for different models of computation

14.1 Encoding for different models of computation Lecture 14 Decidable languages In the previous lecture we discussed some examples of encoding schemes, through which various objects can be represented by strings over a given alphabet. We will begin this

More information

So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees.

So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees. So on the survey, someone mentioned they wanted to work on heaps, and someone else mentioned they wanted to work on balanced binary search trees. According to the 161 schedule, heaps were last week, hashing

More information

INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 10

INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 10 INTRODUCTION TO ALGEBRAIC GEOMETRY, CLASS 10 RAVI VAKIL Contents 1. Schemes 1 1.1. Affine schemes 2 1.2. Schemes 3 1.3. Morphisms of affine schemes 3 1.4. Morphisms of general schemes 4 1.5. Scheme-theoretic

More information

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Algorithms For Inference Fall 2014

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Algorithms For Inference Fall 2014 Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.438 Algorithms For Inference Fall 2014 Recitation-6: Hardness of Inference Contents 1 NP-Hardness Part-II

More information

Introduction to Immersion, Embedding, and the Whitney Embedding Theorems

Introduction to Immersion, Embedding, and the Whitney Embedding Theorems Introduction to Immersion, Embedding, and the Whitney Embedding Theorems Paul Rapoport November 23, 2015 Abstract We give an overview of immersion in order to present the idea of embedding, then discuss

More information

A First Look at the Intel ia32 Architecture

A First Look at the Intel ia32 Architecture A First Look at the Intel ia32 Architecture In this chapter, we are going to take an initial look at the architecture that Intel calls ia32. Now you may be more familiar with names like Pentium, Celeron,

More information

Sheaves and Stacks. November 5, Sheaves and Stacks

Sheaves and Stacks. November 5, Sheaves and Stacks November 5, 2014 Grothendieck topologies Grothendieck topologies are an extra datum on a category. They allow us to make sense of something being locally defined. Give a formal framework for glueing problems

More information

Algebra of Sets. Aditya Ghosh. April 6, 2018 It is recommended that while reading it, sit with a pen and a paper.

Algebra of Sets. Aditya Ghosh. April 6, 2018 It is recommended that while reading it, sit with a pen and a paper. Algebra of Sets Aditya Ghosh April 6, 2018 It is recommended that while reading it, sit with a pen and a paper. 1 The Basics This article is only about the algebra of sets, and does not deal with the foundations

More information

A NOTE ON MORPHISMS DETERMINED BY OBJECTS

A NOTE ON MORPHISMS DETERMINED BY OBJECTS A NOTE ON MORPHISMS DETERMINED BY OBJECTS XIAO-WU CHEN, JUE LE Abstract. We prove that a Hom-finite additive category having determined morphisms on both sides is a dualizing variety. This complements

More information

Overview of Features and Benefits of Easier365

Overview of Features and Benefits of Easier365 Overview of Features and Benefits of Easier365 Review - April 2016 Microsoft already produce a synchronisation tool called OneDrive for Business. Do we really need another commercially available software

More information

2 J.E. BERGNER is the discrete simplicial set X 0. Also, given a simplicial space W, we denote by sk n W the n-skeleton of W, or the simplicial space

2 J.E. BERGNER is the discrete simplicial set X 0. Also, given a simplicial space W, we denote by sk n W the n-skeleton of W, or the simplicial space A CHARACTERIZATION OF FIBRANT SEGAL CATEGORIES JULIA E. BERGNER Abstract. In this note we prove that Reedy fibrant Segal categories are fibrant objects in the model category structure SeCatc. Combining

More information

An update on XML types

An update on XML types An update on XML types Alain Frisch INRIA Rocquencourt (Cristal project) Links Meeting - Apr. 2005 Plan XML types 1 XML types 2 3 2/24 Plan XML types 1 XML types 2 3 3/24 Claim It is worth studying new

More information

Getting Started with Command Prompts

Getting Started with Command Prompts Getting Started with Command Prompts Updated December, 2017 Some courses such as Java Programming will ask the student to perform tasks from a command prompt (Windows) or Terminal window (Mac OS). Many

More information

Throughout this course, we use the terms vertex and node interchangeably.

Throughout this course, we use the terms vertex and node interchangeably. Chapter Vertex Coloring. Introduction Vertex coloring is an infamous graph theory problem. It is also a useful toy example to see the style of this course already in the first lecture. Vertex coloring

More information

Treewidth and graph minors

Treewidth and graph minors Treewidth and graph minors Lectures 9 and 10, December 29, 2011, January 5, 2012 We shall touch upon the theory of Graph Minors by Robertson and Seymour. This theory gives a very general condition under

More information

5 Minimal I-Maps, Chordal Graphs, Trees, and Markov Chains

5 Minimal I-Maps, Chordal Graphs, Trees, and Markov Chains Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science 6.438 Algorithms for Inference Fall 2014 5 Minimal I-Maps, Chordal Graphs, Trees, and Markov Chains Recall

More information

COPYRIGHTED MATERIAL. Making Excel More Efficient

COPYRIGHTED MATERIAL. Making Excel More Efficient Making Excel More Efficient If you find yourself spending a major part of your day working with Excel, you can make those chores go faster and so make your overall work life more productive by making Excel

More information

5-1McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved.

5-1McGraw-Hill/Irwin. Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. 5-1McGraw-Hill/Irwin Copyright 2007 by The McGraw-Hill Companies, Inc. All rights reserved. 5 hapter Data Resource Management Data Concepts Database Management Types of Databases McGraw-Hill/Irwin Copyright

More information

Topos-Based Logical Frameworks and an Application to (Meta)Heuristic Search

Topos-Based Logical Frameworks and an Application to (Meta)Heuristic Search Topos-Based Logical Frameworks and an Application to (Meta)Heuristic Search Fernando Náufel do Amaral 1,2, Edward Hermann Haeusler 1 1 TecMF, Depto. de Informática, PUC-Rio, Brazil 2 Depto. de Informática

More information

Lecture 009 (November 25, 2009) Suppose that I is a small category, and let s(r Mod) I be the category of I-diagrams in simplicial modules.

Lecture 009 (November 25, 2009) Suppose that I is a small category, and let s(r Mod) I be the category of I-diagrams in simplicial modules. Lecture 009 (November 25, 2009) 20 Homotopy colimits Suppose that I is a small category, and let s(r Mod) I be the category of I-diagrams in simplicial modules. The objects of this category are the functors

More information

Theorem 2.9: nearest addition algorithm

Theorem 2.9: nearest addition algorithm There are severe limits on our ability to compute near-optimal tours It is NP-complete to decide whether a given undirected =(,)has a Hamiltonian cycle An approximation algorithm for the TSP can be used

More information

Databases = Categories

Databases = Categories Databases = Categories David I. Spivak dspivak@math.mit.edu Mathematics Department Massachusetts Institute of Technology Presented on 2010/09/16 David I. Spivak (MIT) Databases = Categories Presented on

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Notes on categories, the subspace topology and the product topology

Notes on categories, the subspace topology and the product topology Notes on categories, the subspace topology and the product topology John Terilla Fall 2014 Contents 1 Introduction 1 2 A little category theory 1 3 The subspace topology 3 3.1 First characterization of

More information

6.001 Notes: Section 1.1

6.001 Notes: Section 1.1 6.001 Notes: Section 1.1 Slide 1.1.1 This first thing we need to do is discuss the focus of 6.001. What is this course all about? This seems quite obvious -- this is a course about computer science. But

More information

Intrusion Prevention System Performance Metrics

Intrusion Prevention System Performance Metrics White Paper Intrusion Prevention System Performance Metrics The Importance of Accurate Performance Metrics Network or system design success hinges on multiple factors, including the expected performance

More information

Cache Coherence Tutorial

Cache Coherence Tutorial Cache Coherence Tutorial The cache coherence protocol described in the book is not really all that difficult and yet a lot of people seem to have troubles when it comes to using it or answering an assignment

More information

WYSIWON T The XML Authoring Myths

WYSIWON T The XML Authoring Myths WYSIWON T The XML Authoring Myths Tony Stevens Turn-Key Systems Abstract The advantages of XML for increasing the value of content and lowering production costs are well understood. However, many projects

More information

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach

Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Category Theory in Ontology Research: Concrete Gain from an Abstract Approach Markus Krötzsch Pascal Hitzler Marc Ehrig York Sure Institute AIFB, University of Karlsruhe, Germany; {mak,hitzler,ehrig,sure}@aifb.uni-karlsruhe.de

More information

Topos Theory. Lectures 3-4: Categorical preliminaries II. Olivia Caramello. Topos Theory. Olivia Caramello. Basic categorical constructions

Topos Theory. Lectures 3-4: Categorical preliminaries II. Olivia Caramello. Topos Theory. Olivia Caramello. Basic categorical constructions Lectures 3-4: Categorical preliminaries II 2 / 17 Functor categories Definition Let C and D be two categories. The functor category [C,D] is the category having as objects the functors C D and as arrows

More information

Recursively Enumerable Languages, Turing Machines, and Decidability

Recursively Enumerable Languages, Turing Machines, and Decidability Recursively Enumerable Languages, Turing Machines, and Decidability 1 Problem Reduction: Basic Concepts and Analogies The concept of problem reduction is simple at a high level. You simply take an algorithm

More information

GALOIS THEORY OF SIMPLICIAL COMPLEXES

GALOIS THEORY OF SIMPLICIAL COMPLEXES GALOIS THEORY OF SIMPLICIAL COMPLEXES Marco Grandis 1,* and George Janelidze 2, 1 Dipartimento di Matematica, Università di Genova, via Dodecaneso 35, 16146 Genova, Italy email: grandis@dima.unige.it 2

More information

arxiv: v1 [math.ag] 26 Mar 2012

arxiv: v1 [math.ag] 26 Mar 2012 Cartesian modules in small categories arxiv:1203.5724v1 [math.ag] 26 Mar 2012 Edgar Enochs enochs@ms.uky.edu Department of Mathematics University of Kentucky Lexington, KY 40506-0027 U.S.A Sergio Estrada

More information

Lecture 008 (November 13, 2009)

Lecture 008 (November 13, 2009) Lecture 008 (November 13, 2009) 17 The Dold-Kan correspondence Suppose that A : op R Mod is a simplicial R-module. Examples to keep in mind are the free simplicial objects R(X) associated to simplicial

More information

in simplicial sets, or equivalently a functor

in simplicial sets, or equivalently a functor Contents 21 Bisimplicial sets 1 22 Homotopy colimits and limits (revisited) 10 23 Applications, Quillen s Theorem B 23 21 Bisimplicial sets A bisimplicial set X is a simplicial object X : op sset in simplicial

More information

Virtual File System. Don Porter CSE 306

Virtual File System. Don Porter CSE 306 Virtual File System Don Porter CSE 306 History Early OSes provided a single file system In general, system was pretty tailored to target hardware In the early 80s, people became interested in supporting

More information

Performance Testing from UML Models with Resource Descriptions *

Performance Testing from UML Models with Resource Descriptions * Performance Testing from UML Models with Resource Descriptions * Flávio M. de Oliveira 1, Rômulo da S. Menna 1, Hugo V. Vieira 1, Duncan D.A. Ruiz 1 1 Faculdade de Informática Pontifícia Universidade Católica

More information

Module 10: Unix Primer

Module 10: Unix Primer Module 10: Unix Primer From UNICS To Unix: A brief history: - Early on, in the 1960s and 1970s, every major computer manufacturer supplied operating system as a proprietary software. Such OSs were written

More information

Lecture 21: Red-Black Trees

Lecture 21: Red-Black Trees 15-150 Lecture 21: Red-Black Trees Lecture by Dan Licata April 3, 2012 Last time, we talked about the signature for dictionaries: signature ORDERED = sig type t val compare : t * t -> order signature DICT

More information

Lecture #3: PageRank Algorithm The Mathematics of Google Search

Lecture #3: PageRank Algorithm The Mathematics of Google Search Lecture #3: PageRank Algorithm The Mathematics of Google Search We live in a computer era. Internet is part of our everyday lives and information is only a click away. Just open your favorite search engine,

More information

Lecture 11 COVERING SPACES

Lecture 11 COVERING SPACES Lecture 11 COVERING SPACES A covering space (or covering) is not a space, but a mapping of spaces (usually manifolds) which, locally, is a homeomorphism, but globally may be quite complicated. The simplest

More information

Divisibility Rules and Their Explanations

Divisibility Rules and Their Explanations Divisibility Rules and Their Explanations Increase Your Number Sense These divisibility rules apply to determining the divisibility of a positive integer (1, 2, 3, ) by another positive integer or 0 (although

More information

Structures with lots of symmetry

Structures with lots of symmetry Structures with lots of symmetry (one of the things Bob likes to do when not doing semigroup theory) Robert Gray Centro de Álgebra da Universidade de Lisboa NBSAN Manchester, Summer 2011 Why? An advertisement

More information

3.1 Constructions with sets

3.1 Constructions with sets 3 Interlude on sets Sets and functions are ubiquitous in mathematics. You might have the impression that they are most strongly connected with the pure end of the subject, but this is an illusion: think

More information

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced?

!! What is virtual memory and when is it useful? !! What is demand paging? !! When should pages in memory be replaced? Chapter 10: Virtual Memory Questions? CSCI [4 6] 730 Operating Systems Virtual Memory!! What is virtual memory and when is it useful?!! What is demand paging?!! When should pages in memory be replaced?!!

More information

On the Convexity Number of Graphs

On the Convexity Number of Graphs On the Convexity Number of Graphs Mitre C. Dourado 1, Fábio Protti, Dieter Rautenbach 3, and Jayme L. Szwarcfiter 4 1 ICE, Universidade Federal Rural do Rio de Janeiro and NCE - UFRJ, Brazil, email: mitre@nce.ufrj.br

More information

HOPE Project AAL Smart Home for Elderly People

HOPE Project AAL Smart Home for Elderly People 1.1.1.1.1 HOPE Project AAL-2008-1-099 Smart Home for Elderly People D10 User Interface Mockup Report Version: 1 1.0 Report Preparation Date: 28.02.2010 Classification: Partner Responsible: Restricted I2S

More information

On the Recognizability of Arrow and Graph Languages

On the Recognizability of Arrow and Graph Languages On the Recognizability of Arrow and Graph Languages Christoph Blume Sander Bruggink Barbara König Universität Duisburg-Essen, Germany Background Applications of finite automata and regular (word) languages

More information

PACKING DIGRAPHS WITH DIRECTED CLOSED TRAILS

PACKING DIGRAPHS WITH DIRECTED CLOSED TRAILS PACKING DIGRAPHS WITH DIRECTED CLOSED TRAILS PAUL BALISTER Abstract It has been shown [Balister, 2001] that if n is odd and m 1,, m t are integers with m i 3 and t i=1 m i = E(K n) then K n can be decomposed

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 01: Procedural Programming MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Procedural Programming 2 Introduction Procedural Programming: General Overview Procedural Programming:

More information

TRANSACTION-TIME INDEXING

TRANSACTION-TIME INDEXING TRANSACTION-TIME INDEXING Mirella M. Moro Universidade Federal do Rio Grande do Sul Porto Alegre, RS, Brazil http://www.inf.ufrgs.br/~mirella/ Vassilis J. Tsotras University of California, Riverside Riverside,

More information

1.1 The Real Number System

1.1 The Real Number System 1.1 The Real Number System Contents: Number Lines Absolute Value Definition of a Number Real Numbers Natural Numbers Whole Numbers Integers Rational Numbers Decimals as Fractions Repeating Decimals Rewriting

More information

Endomorphisms and synchronization, 2: Graphs and transformation monoids

Endomorphisms and synchronization, 2: Graphs and transformation monoids Endomorphisms and synchronization, 2: Graphs and transformation monoids Peter J. Cameron BIRS, November 2014 Relations and algebras Given a relational structure R, there are several similar ways to produce

More information

For this assignment, you will implement a collection of C functions to support a classic data encoding scheme.

For this assignment, you will implement a collection of C functions to support a classic data encoding scheme. C Programming SEC-DED Data Encoding For this assignment, you will implement a collection of C functions to support a classic data encoding scheme. Data transmission and data storage both raise the risk

More information

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2)

SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay. Lecture #10 Process Modelling DFD, Function Decomp (Part 2) SOFTWARE ENGINEERING Prof.N.L.Sarda Computer Science & Engineering IIT Bombay Lecture #10 Process Modelling DFD, Function Decomp (Part 2) Let us continue with the data modeling topic. So far we have seen

More information

3.7. Vertex and tangent

3.7. Vertex and tangent 3.7. Vertex and tangent Example 1. At the right we have drawn the graph of the cubic polynomial f(x) = x 2 (3 x). Notice how the structure of the graph matches the form of the algebraic expression. The

More information

INTRODUCTION TO PART II: IND-COHERENT SHEAVES

INTRODUCTION TO PART II: IND-COHERENT SHEAVES INTRODUCTION TO PART II: IND-COHERENT SHEAVES 1. Ind-coherent sheaves vs quasi-coherent sheaves One of the primary goals of this book is to construct the theory of ind-coherent sheaves as a theory of O-modules

More information

CMPSCI 250: Introduction to Computation. Lecture #22: Graphs, Paths, and Trees David Mix Barrington 12 March 2014

CMPSCI 250: Introduction to Computation. Lecture #22: Graphs, Paths, and Trees David Mix Barrington 12 March 2014 CMPSCI 250: Introduction to Computation Lecture #22: Graphs, Paths, and Trees David Mix Barrington 12 March 2014 Graphs, Paths, and Trees Graph Definitions Paths and the Path Predicate Cycles, Directed

More information

1 Algorithms, Inputs, Outputs

1 Algorithms, Inputs, Outputs 1 Algorithms, Inputs, Outputs In the last class we discussed Universal Turing machines and the evolution in thought from circuitry being the important thing to the table of state transitions, or computer

More information

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5

Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 Formal Methods of Software Design, Eric Hehner, segment 1 page 1 out of 5 [talking head] Formal Methods of Software Engineering means the use of mathematics as an aid to writing programs. Before we can

More information

PARTIALLY ORDERED SETS. James T. Smith San Francisco State University

PARTIALLY ORDERED SETS. James T. Smith San Francisco State University PARTIALLY ORDERED SETS James T. Smith San Francisco State University A reflexive transitive relation on a nonempty set X is called a quasi-ordering of X. An ordered pair consisting of a nonempty

More information

On the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW

On the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW STAROFFICE 8 DRAW Graphics They say a picture is worth a thousand words. Pictures are often used along with our words for good reason. They help communicate our thoughts. They give extra information that

More information

Identifying Users Stereotypes with Semantic Web Mining

Identifying Users Stereotypes with Semantic Web Mining Identifying Users Stereotypes with Semantic Web Mining José Palazzo Moreira de Oliveira Sandro José Rigo Instituto de Informática Universidade Federal do Rio Grande do Sul (UFRGS) {palazzo,sjrigo}@inf.ufrgs.br

More information

THE Q-CONSTRUCTION FOR STABLE -CATEGORIES

THE Q-CONSTRUCTION FOR STABLE -CATEGORIES THE Q-CONSTRUCTION FOR STABLE -CATEGORIES RUNE HAUGSENG The aim of these notes is to define the Q-construction for a stable -category C, and sketch the proof that it is equivalent to the (Waldhausen) K-theory

More information

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems

The architecture of Eiffel software 3.1 OVERVIEW classes clusters systems 3 Draft 5.02.00-0, 15 August 2005 (Santa Barbara). Extracted from ongoing work on future third edition of Eiffel: The Language. Copyright Bertrand Meyer 1986-2005. Access restricted to purchasers of the

More information

Leinster s globular theory of weak -categories

Leinster s globular theory of weak -categories Leinster s globular theory of weak -categories Ed Morehouse April 16, 2014 (last updated August 8, 2014) These are my notes for a series of lectures that I gave at the Homotopy Type Theory seminar at Carnegie

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 2, July-August 2002 The Theory of Classification Part 2: The Scratch-Built

More information

Formal Verification Methods 2: Symbolic Simulation

Formal Verification Methods 2: Symbolic Simulation Formal Verification Methods 2: Symbolic Simulation John Harrison Intel Corporation Marktoberdorf 2003 Thu 3st July 2003 (:25 2:0) 0 Summary Simulation Symbolic and ternary simulation BDDs Quaternary lattice

More information

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 37 Resolution Rules

Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras. Lecture - 37 Resolution Rules Mathematical Logic Prof. Arindama Singh Department of Mathematics Indian Institute of Technology, Madras Lecture - 37 Resolution Rules If some literals can be unified, the same algorithm should be able

More information

Modeling Introduction. Hani Achkar

Modeling Introduction. Hani Achkar Hani Achkar Purpose This is only a brief introduction not a full course Modeling is a very deep subject matter I will only cover very few concepts What are Models? What are Models? A compromise with reality

More information

Product Overview. All text and design is copyright 2009 Seavus, All rights reserved

Product Overview. All text and design is copyright 2009 Seavus, All rights reserved Product Overview All text and design is copyright 2009 Seavus, All rights reserved TABLE OF CONTENT 1. WELCOME TO SEAVUS DROPMIND 2 1.1 INTRODUCTION... 2 2 SEAVUS DROPMIND FUNCTIONALITIES 4 2.1 BASIC FUNCTIONALITY...

More information

A Tour of Photoshop Elements 8 What s what and what it does

A Tour of Photoshop Elements 8 What s what and what it does The Muvipix.com Guide to Photoshop Elements & Premiere Elements 8 Chapter 2 A Tour of Photoshop Elements 8 What s what and what it does Welcome to Photoshop Elements a terrific, affordable photo retouching

More information

6. Lecture notes on matroid intersection

6. Lecture notes on matroid intersection Massachusetts Institute of Technology 18.453: Combinatorial Optimization Michel X. Goemans May 2, 2017 6. Lecture notes on matroid intersection One nice feature about matroids is that a simple greedy algorithm

More information

Higher Gauge Theory: 2-Connections

Higher Gauge Theory: 2-Connections Higher Gauge Theory: 2-Connections John C. Baez joint work with: Toby Bartels, Alissa Crans, Aaron Lauda, Urs Schreiber, Danny Stevenson. Union College Mathematics Conference December 4, 2005 g jl g il

More information

4. Entity Relationship Model

4. Entity Relationship Model 4. Entity Relationship Model a) ER-Model: Used to construct conceptual data model, representing the structure and constraints of a database, which is not dependent on a software (like DBMS) or any data

More information

Functions 2/1/2017. Exercises. Exercises. Exercises. and the following mathematical appetizer is about. Functions. Functions

Functions 2/1/2017. Exercises. Exercises. Exercises. and the following mathematical appetizer is about. Functions. Functions Exercises Question 1: Given a set A = {x, y, z} and a set B = {1, 2, 3, 4}, what is the value of 2 A 2 B? Answer: 2 A 2 B = 2 A 2 B = 2 A 2 B = 8 16 = 128 Exercises Question 2: Is it true for all sets

More information

Navigating the User Interface

Navigating the User Interface Navigating the User Interface CHAPTER 1 If you re new to the AutoCAD Civil 3D software environment, then your first experience has probably been a lot like staring at the instrument panel of an airplane.

More information

Disjoint set (Union-Find)

Disjoint set (Union-Find) CS124 Lecture 6 Spring 2011 Disjoint set (Union-Find) For Kruskal s algorithm for the minimum spanning tree problem, we found that we needed a data structure for maintaining a collection of disjoint sets.

More information

6. Relational Algebra (Part II)

6. Relational Algebra (Part II) 6. Relational Algebra (Part II) 6.1. Introduction In the previous chapter, we introduced relational algebra as a fundamental model of relational database manipulation. In particular, we defined and discussed

More information

Adaptability and Dynamicity in Parallel Programming The MPI case

Adaptability and Dynamicity in Parallel Programming The MPI case Adaptability and Dynamicity in Parallel Programming The MPI case Nicolas Maillard Instituto de Informática UFRGS 21 de Outubro de 2008 http://www.inf.ufrgs.br/~nicolas The Institute of Informatics, UFRGS

More information

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Week 02 Module 06 Lecture - 14 Merge Sort: Analysis So, we have seen how to use a divide and conquer strategy, we

More information