Types in Logic, Mathematics, and Programming from the Handbook of Proof Theory
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Pragmatic Quotient Types in Coq Cyril Cohen
Pragmatic Quotient Types in Coq Cyril Cohen To cite this version: Cyril Cohen. Pragmatic Quotient Types in Coq. International Conference on Interactive Theorem Proving, Jul 2013, Rennes, France. pp.16. hal-01966714 HAL Id: hal-01966714 https://hal.inria.fr/hal-01966714 Submitted on 29 Dec 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. Pragmatic Quotient Types in Coq Cyril Cohen Department of Computer Science and Engineering University of Gothenburg [email protected] Abstract. In intensional type theory, it is not always possible to form the quotient of a type by an equivalence relation. However, quotients are extremely useful when formalizing mathematics, especially in algebra. We provide a Coq library with a pragmatic approach in two complemen- tary components. First, we provide a framework to work with quotient types in an axiomatic manner. Second, we program construction mecha- nisms for some specific cases where it is possible to build a quotient type. This library was helpful in implementing the types of rational fractions, multivariate polynomials, field extensions and real algebraic numbers. Keywords: Quotient types, Formalization of mathematics, Coq Introduction In set-based mathematics, given some base set S and an equivalence ≡, one may see the quotient (S/ ≡) as the partition {π(x) | x ∈ S} of S into the sets π(x) ˆ= {y ∈ S | x ≡ y}, which are called equivalence classes. -
Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae Available Online
Donald Knuth Fletcher Jones Professor of Computer Science, Emeritus Curriculum Vitae available Online Bio BIO Donald Ervin Knuth is an American computer scientist, mathematician, and Professor Emeritus at Stanford University. He is the author of the multi-volume work The Art of Computer Programming and has been called the "father" of the analysis of algorithms. He contributed to the development of the rigorous analysis of the computational complexity of algorithms and systematized formal mathematical techniques for it. In the process he also popularized the asymptotic notation. In addition to fundamental contributions in several branches of theoretical computer science, Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system, and the Computer Modern family of typefaces. As a writer and scholar,[4] Knuth created the WEB and CWEB computer programming systems designed to encourage and facilitate literate programming, and designed the MIX/MMIX instruction set architectures. As a member of the academic and scientific community, Knuth is strongly opposed to the policy of granting software patents. He has expressed his disagreement directly to the patent offices of the United States and Europe. (via Wikipedia) ACADEMIC APPOINTMENTS • Professor Emeritus, Computer Science HONORS AND AWARDS • Grace Murray Hopper Award, ACM (1971) • Member, American Academy of Arts and Sciences (1973) • Turing Award, ACM (1974) • Lester R Ford Award, Mathematical Association of America (1975) • Member, National Academy of Sciences (1975) 5 OF 44 PROFESSIONAL EDUCATION • PhD, California Institute of Technology , Mathematics (1963) PATENTS • Donald Knuth, Stephen N Schiller. "United States Patent 5,305,118 Methods of controlling dot size in digital half toning with multi-cell threshold arrays", Adobe Systems, Apr 19, 1994 • Donald Knuth, LeRoy R Guck, Lawrence G Hanson. -
Leading the Way in Scientific Computing. Addison-Wesley. I When Looking for the Best in Scientific Computing, You've Come to Rely on Addison-Wesley
Leading the way in scientific computing. Addison-Wesley. I When looking for the best in scientific computing, you've come to rely on Addison-Wesley. I Take a moment to see how we've made our list even stronger. The LATEX Companion sional programming languages. This book is the definitive user's Michael Goossens, Frank Mittelbach, and Alexander Samarin guide and reference manual for the CWEB system. This book is packed with information needed to use LATEX even 1994 (0-201 -57569-8) approx. 240 pp. Softcover more productively. It is a true companion to Leslie Lamport's users guide as well as a valuable complement to any LATEX introduction. Concrete Mathematics. Second Edition Describes the new LATEX standard. Ronald L. Graham, Donald E. Knuth, and Oren Patashnick 1994 (0-201 -54 199-8) 400 pp. Softcover With improvements to almost every page, the second edition of this classic text and reference introduces the mathematics that LATEX: A Document Preparation System, Second Edition supports advanced computer programming. Leslie Lamport 1994 (0-201 -55802-5) 672 pp. Hardcover The authoritative user's guide and reference manual has been revised to document features now available in the new standard Applied Mathematics@: Getting Started, Getting It Done software release-LATEX~E.The new edition features additional styles William T. Shaw and Jason Tigg and functions, improved font handling, and much more. This book shows how Mathematics@ can be used to solve problems in 1994 (0-201-52983-1) 256 pp. Softcover the applied sciences. Provides a wealth of practical tips and techniques. 1 994 (0-201 -542 1 7-X) 320 pp. -
Arithmetic in MIPS
6 Arithmetic in MIPS Objectives After completing this lab you will: • know how to do integer arithmetic in MIPS • know how to do floating point arithmetic in MIPS • know about conversion from integer to floating point and from floating point to integer. Introduction The definition of the R2000 architecture includes all integer arithmetic within the actual CPU. Floating point arithmetic is done by one of the four possible coprocessors, namely coprocessor number 1. Integer arithmetic Addition and subtraction are performed on 32 bit numbers held in the general purpose registers (32 bit each). The result is a 32 bit number itself. Two kinds of instructions are included in the instruction set to do integer addition and subtraction: • instructions for signed arithmetic: the 32 bit numbers are considered to be represented in 2’s comple- ment. The execution of the instruction (addition or subtraction) may generate an overflow. • instructions for unsigned arithmetic: the 32 bit numbers are considered to be in standard binary repre- sentation. Executing the instruction will never generate an overflow error even if there is an actual overflow (the result cannot be represented with 32 bits). Multiplication and division may generate results that are larger than 32 bits. The architecture provides two special 32 bit registers that are the destination for multiplication and division instructions. These registers are called hi and lo as to indicate that they hold the higher 32 bits of the result and the lower 32 bits respectively. Special instructions are also provided to move data from these registers into the general purpose ones ($0 to $31). -
Ultraproducts and Elementary Classes *
MATHEMATICS ULTRAPRODUCTS AND ELEMENTARY CLASSES * BY H. JEROME KEISLER (Communicated by Prof. A. HEYTING at the meeting of May 27, 1961 INTRODUCTION In the theory of models of the first order predicate logic with identity we study the relationship between notions from logic and purely mathe matical objects, called relational systems, or (first order) structures, m, consisting of a set A and a sequence of relations on A corresponding to the predicate symbols of the logic. In such studies some of the most useful methods are those which permit us to form structures which have certain semantical properties. For example, the completeness theorem permits us to form a structure which satisfies a given consistent set of sentences. A more recent tool is the reduced product operation, which is particularly simple and direct from the mathematical point of view. Speaking very roughly, a reduced product Iliei ill:i/D of the structures mi, i El, is formed by first taking their direct product and then forming the quotient system determined in a certain way by the filter D on the index set 1. If D is an ultrafilter we have an ultraproduct (or prime reduced product), and if each m:i coincides with a fixed system ill: we have a reduced power, or ultrapower, ill: I j D. Ultraproducts have recently been applied to obtain new, comparatively direct mathematical proofs and at the same time stronger forms of a number of theorems in model theory. An outstanding example is the proof of the compactness theorem outlined in [33]. They have also been used to obtain several completely new results in the theory of models (for example, see [35]). -
Quotient Types: a Modular Approach
Quotient Types: A Modular Approach Aleksey Nogin Department of Computer Science Cornell University, Ithaca, NY 14853 [email protected] Abstract. In this paper we introduce a new approach to axiomatizing quotient types in type theory. We suggest replacing the existing mono- lithic rule set by a modular set of rules for a specially chosen set of primitive operations. This modular formalization of quotient types turns out to be much easier to use and free of many limitations of the tradi- tional monolithic formalization. To illustrate the advantages of the new approach, we show how the type of collections (that is known to be very hard to formalize using traditional quotient types) can be naturally for- malized using the new primitives. We also show how modularity allows us to reuse one of the new primitives to simplify and enhance the rules for the set types. 1 Introduction NuPRL type theory differs from most other type theories used in theorem provers in its treatment of equality. In Coq’s Calculus of Constructions, for example, there is a single global equality relation which is not the desired one for many types (e.g. function types). The desired equalities have to be handled explicitly, which is quite burdensome. As in Martin-L¨of type theory [20] (of which NuPRL type theory is an extension), in NuPRL each type comes with its own equality relation (the extensional one in the case of functions), and the typing rules guar- antee that well–typed terms respect these equalities. Semantically, a quotient in NuPRL is trivial to define: it is simply a type with a new equality. -
Mathematics for Computer Scientists (G51MCS) Lecture Notes Autumn 2005
Mathematics for Computer Scientists (G51MCS) Lecture notes Autumn 2005 Thorsten Altenkirch October 26, 2005 Contents 1 1 Types and sets What is a set? Wikipedia 1 says Informally, a set is just a collection of objects considered as a whole. And what is a type? Wikipedia offers different definitions for different subject areas, but if we look up datatype in Computer Science we learn: In computer science, a datatype (often simply type) is a name or label for a set of values and some operations which can be performed on that set of values. Here the meaning of type refers back to the meaning of sets, but it is hard to see a substantial difference. We may conclude that what is called a set in Mathematics is called a type in Computer Science. Here, we will adopt the computer science terminology and use the term type. But remember to translate this to set when talking to a Mathematician. There is a good reason for this choice: I am going to use the type system of the programming language Haskell to illustrate many important constructions on types and to implement mathematical constructions on a computer. Please note that this course is not an introduction to Haskell, this is done in the 2nd semester in G51FUN. If you want to find out more about Haskell now, I refer to Graham Hutton’s excellent, forthcoming book, whose first seven chapters are available from his web page 2 . The book is going to be published soon and is the course text for G51FUN. Another good source for information about Haskell is the Haskell home page 3 While we are going to use Haskell to illustrate mathematical concepts, Haskell is also a very useful language for lots of other things, from designing user interfaces to controlling robots. -
Quotient Types — a Modular Approach *,**
Quotient Types — a Modular Approach ?;?? Aleksey Nogin Department of Computer Science Cornell University Ithaca, NY 14853 E-mail: [email protected] Web: http://nogin.org/ Abstract. In this paper we introduce a new approach to defining quo- tient types in type theory. We suggest replacing the existing monolithic rule set by a modular set of rules for a specially chosen set of primitive operations. This modular formalization of quotient types turns out to be very powerful and free of many limitations of the traditional monolithic formalization. To illustrate the advantages of the new formalization, we show how the type of collections (that is known to be very hard to formal- ize using traditional quotient types) can be naturally formalized using the new primitives. We also show how modularity allows us to reuse one of the new primitives to simplify and enhance the rules for the set types. 1 Introduction NuPRL type theory differs from most other type theories used in theorem provers in its treatment of equality. In Coq’s Calculus of Constructions, for example, there is a single global equality relation which is not the desired one for many types (e.g. function types). The desired equalities have to be handled explicitly, which is quite burdensome. As in Martin-L¨oftype theory [17] (of which NuPRL type theory is an extension), in NuPRL each type comes with its own equality relation (the extensional one in the case of functions), and the typing rules guar- antee that well–typed terms respect these equalities. Semantically, a quotient in NuPRL is trivial to define: it is simply a type with a new equality. -
Infinite Computation, Co-Induction and Computational Logic
Infinite Computation, Co-induction and Computational Logic Gopal Gupta Neda Saeedloei, Brian DeVries, Richard Min, Kyle Marple, Feliks Klu´zniak Department of Computer Science, University of Texas at Dallas, Richardson, TX 75080. Abstract. We give an overview of the coinductive logic programming paradigm. We discuss its applications to modeling ω-automata, model checking, verification, non-monotonic reasoning, developing SAT solvers, etc. We also discuss future research directions. 1 Introduction Coinduction is a technique for reasoning about unfounded sets [12], behavioral properties of programs [2], and proving liveness properties in model checking [16]. Coinduction also provides the foundation for lazy evaluation [9] and type inference [21] in functional programming as well as for interactive computing [33]. Coinduction is the dual of induction. Induction corresponds to well-founded structures that start from a basis which serves as the foundation: e.g., natural numbers are inductively defined via the base element zero and the successor function. Inductive definitions have 3 components: initiality, iteration and mini- mality. For example, the inductive definition of lists of numbers is as follows: (i) [] (empty list) is a list (initiality); (ii) [H|T] is a a list if T is a list and H is some number (iteration); and, (iii) the set of lists is the smallest set satisfying (i) and (ii) (minimality). Minimality implies that infinite-length lists of numbers are not members of the inductively defined set of lists of numbers. Inductive definitions correspond to least fixed point (LFP) interpretations of recursive definitions. Coinduction eliminates the initiality condition and replaces the minimality condition with maximality. Thus, the coinductive definition of a list of numbers is: (i) [H|T] is as a list if T is a list and H is some number (iteration); and, (ii) the set of lists is the largest set of lists satisfying (i) (maximality). -
Quotient Types
Quotient Types Peter V. Homeier U. S. Department of Defense, [email protected] http://www.cis.upenn.edu/~homeier Abstract. The quotient operation is a standard feature of set theory, where a set is divided into subsets by an equivalence relation; the re- sulting subsets of equivalent elements are called equivalence classes. We reinterpret this idea for Higher Order Logic (HOL), where types are di- vided by an equivalence relation to create new types, called quotient types. We present a tool for the Higher Order Logic theorem prover to mechanically construct quotient types as new types in the HOL logic, and also to de¯ne functions that map between the original type and the quotient type. Several properties of these mapping functions are proven automatically. Tools are also provided to create quotients of aggregate types, in particular lists, pairs, and sums. These require special atten- tion to preserve the aggregate structure across the quotient operation. We demonstrate these tools on an example from the sigma calculus. 1 Quotient Sets Quotient sets are a standard construction of set theory. They have found wide application in many areas of mathematics, including algebra and logic. The following description is abstracted from [3]. A binary relation on S is an equivalence relation if it is reflexive, symmetric, and transitive. » reflexive: x S: x x symmetric: 8x;2 y S: x » y y x transitive: 8x; y;2 z S: x » y ) y »z x z 8 2 » ^ » ) » Let be an equivalence relation. Then the equivalence class of x (modulo )is » » de¯ned as [x] def= y x y . -
More Model Theory Notes Miscellaneous Information, Loosely Organized
More Model Theory Notes Miscellaneous information, loosely organized. 1. Kinds of Models A countable homogeneous model M is one such that, for any partial elementary map f : A ! M with A ⊆ M finite, and any a 2 M, f extends to a partial elementary map A [ fag ! M. As a consequence, any partial elementary map to M is extendible to an automorphism of M. Atomic models (see below) are homogeneous. A prime model of T is one that elementarily embeds into every other model of T of the same cardinality. Any theory with fewer than continuum-many types has a prime model, and if a theory has a prime model, it is unique up to isomorphism. Prime models are homogeneous. On the other end, a model is universal if every other model of its size elementarily embeds into it. Recall a type is a set of formulas with the same tuple of free variables; generally to be called a type we require consistency. The type of an element or tuple from a model is all the formulas it satisfies. One might think of the type of an element as a sort of identity card for automorphisms: automorphisms of a model preserve types. A complete type is the analogue of a complete theory, one where every formula of the appropriate free variables or its negation appears. Types of elements and tuples are always complete. A type is principal if there is one formula in the type that implies all the rest; principal complete types are often called isolated. A trivial example of an isolated type is that generated by the formula x = c where c is any constant in the language, or x = t(¯c) where t is any composition of appropriate-arity functions andc ¯ is a tuple of constants. -
Resources for Further Study
Resources for Further Study A number of valuable resources are available for further study of philosophical logic. In addition to the books and articles cited in the references at the end of each chapter included in this volume, there are four general categories of resources that can be consulted for information about the history and current research developments in philosophical logic. Additional materials can be found by soliciting advice from logicians, philosophers, and mathematicians at local colleges and universities. Logic Handbooks Many university and independent presses publish books on or related to mathematical and philo- sophical logic. There are also several special series of original monographs in logic that are worth investigating. The literature is too vast to justify a selection of the individual books that have con- tributed to the development of logic. We can nevertheless identify special categories of texts of special interest, beginning with handbooks and book series dedicated to logic and philosophical logic. Here are some recent relevant publications: Boyer, Robert S. (1988) A Computational Logic Handbook. Boston, MA: Academic Press. Sherwood, John C. (1960) Discourse of Reason: A Brief Handbook of Semantics and Logic. New York: Harper & Row. Handbook of Fuzzy Computation, ed. Enrique H. Ruspini, Piero P. Bonissone and Witold Pedrycz. Philadelphia, PA: Institute of Physics Publications, 1998. Handbook of Logic and Language, ed. Johan van Benthem and Alice ter Meulen. Cambridge, MA: MIT Press, 1997. Handbook of Logic in Artificial Intelligence and Logic Programming, ed. Dov Gabbay, C. J. Hogger, and J. A. Robinson. Oxford: Clarendon Press, 1993–8. Emmet, E. R. (1984) Handbook of Logic.