A Categorical Model for a Versioning File System
|
|
- Augustus Clarke
- 6 years ago
- Views:
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 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 informationCore 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 informationCategory 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 informationA 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 informationCrash 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 informationConfiguration 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 informationComplexity 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 information6.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 information13 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 informationTeiid 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 informationComparative 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 informationNon-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 informationTecniche 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 informationThe 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 informationLimitations 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 informationHomotopy 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 informationCategory 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 informationTopoi: 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 informationA 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 information14.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 informationSo 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 informationINTRODUCTION 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 informationMassachusetts 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 informationIntroduction 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 informationA 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 informationSheaves 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 informationAlgebra 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 informationA 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 informationOverview 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 information2 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 informationAn 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 informationGetting 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 informationThroughout 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 informationTreewidth 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 information5 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 informationCOPYRIGHTED 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 information5-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 informationTopos-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 informationLecture 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 informationTheorem 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 informationDatabases = 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 informationProgramming 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 informationNotes 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 information6.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 informationIntrusion 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 informationCache 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 informationWYSIWON 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 informationCategory 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 informationTopos 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 informationRecursively 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 informationGALOIS 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 informationarxiv: 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 informationLecture 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 informationin 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 informationVirtual 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 informationPerformance 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 informationModule 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 informationLecture 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 informationLecture #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 informationLecture 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 informationDivisibility 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 informationStructures 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 information3.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?
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 informationOn 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 informationHOPE 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 informationOn 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 informationPACKING 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 informationProgramming 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 informationTRANSACTION-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 information1.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 informationEndomorphisms 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 informationFor 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 informationSOFTWARE 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 information3.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 informationINTRODUCTION 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 informationCMPSCI 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 information1 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 informationFormal 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 informationPARTIALLY 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 informationOn 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 informationIdentifying 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 informationTHE 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 informationThe 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 informationLeinster 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 informationJOURNAL 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 informationFormal 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 informationMathematical 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 informationModeling 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 informationProduct 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 informationA 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 information6. 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 informationHigher 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 information4. 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 informationFunctions 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 informationNavigating 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 informationDisjoint 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 information6. 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 informationAdaptability 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 informationDesign 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