Abstract Automath

Total Page:16

File Type:pdf, Size:1020Kb

Abstract Automath MATHEMATICAL CENTRE TRACTS 160 ABSTRACT AUTOMATH A. REZUS MATH EMATISCH CENTRUM AMST EW DAM 1983 1980 Mathematics subject classification: Primary: 03B40 Secondary: 03-04, 03F99, 68-04, 68C20 ISBN 90 6196 256 0 copyrightO 1983, Mathematisch Centrum, Amsterdam "De objectiveering der wereld in wiskun- dige systemen bij verschillende individu- en wordt in onderling verband gehouden door de passielooze taa1,die bi den hoor- der het identieke wiskundige sssteem als bij den spreker doet oprijzeh,terwijl de gevoelsinhoud van dat systeem bij beiden totaal verschillend kan zijn ..." (L.E.J.BROUWER: "Wiskunde en Ervaring".) PREFACE The idea of a computer-assisted proof-checking (applied to concrete proofs,as they appear in the mathematician's everyday life) has probably occurred to many mindsteven before the von Neumann compu- ter was conceived. In particular,an attempt to increase the reliability of mathematical texts (proofs) by having them processed and checked on computer has also been the main motivation behind the specific AUTOmated MATHema- tics Project,developed since 1967 at the Eindhoven University of Technology. Abstracting from the pragmatic motivations (cf. 02. below),a suffi- ciently complex AUTOMATH-system (the "classical" version: AUT-68, say) can beviewed as an (applied) typed lambda-calculus with a "poly- morphic" type-structure (to coin a word from R.~ilner). Although the underlying 17type-polymorphism"appears to be - at a first look - a very specific one,we realize soon that an AUTOMATH- system is powerful enough such as to allow interpreting (in it) fami- liar typed lambda-calculi as,e.g.,the Curry Theory of Functionality (= "First-order Typed Lambda-calculus") or the Girard-Reynolds Second-order ("parametric") Typed Lambda-calculus.In this respect, an AUTOMATH-system is a "generalized typed lambda-calculus". At a closer examination,the "pure" (i.e.,constantless) part of the- se systems turns out to be much similar if not equivalent to other typed lambda-calculi occurring in the recent literature on the foun- dations of logic and mathematics.(Specifically,"Pure AUT-68" is,in fact,a fully formalized version of J.P.Seldinls Theory of Generali- zed Functionality (cf.Annals Math.Log. -12,1979,29-59),and - it becomes - under an appropriate translation - equivalent to the "!-fragmentn of Martin-Lof's Theori(es) of Types (cf. 8eferences,under MABTIX-LgF'.) On the other hand,the specific manipulation of the AUT(OMATH)-cons- tants - a .E& generis feature of these systems - is,up to a certain point,independent from the underlying lambda-calculus part and can be used,with similar effects,in connection with any other typed lamb- da-calculus. The present work is intended to discuss in detail a theoretical as- pect of the main AUTOMATH-systems,viz. the possibility of fvsepara- ting" the "lambda-calculus-freevfpart (usually identified as "Primi- tive AUTOMATH") from a "full AUT-systemn.Despite the fact that the so-called "Primitive AUTOMATH" can be defined independently,it is not immediately clear,from the language-definition of "biggervfsystems, that the corresponding "correctness categoriesffof the latter are actually "conservativeu over those of the former one. The affirmative answer (given in Z.,below) insures the fact that the "definitional mechanismu of an AUT-system is actually an indepen- dent,nsuper-imposed" structure on a "Pure AUTOMATHIT-system and shows that a (theoretical) study of the latter (which is,properly speaking, a Chapter of ~ambda-calculus) might be also profitable for the speci- fic purposes of the AUTOMATH Project. Other theoretical aspects of these systems,as,e.g.,a "global proof- theoryvvand a umathematicalfvsemantics (model theory) will be dis- cussed elsewhere. ACKNOWLEDGEMENTS. This book is the outcome of a not too remote and particularly fruit- ful period of time when I was employed by the Eindhoven.University of Technology (TITHE"),~~the Department of Mathematics and Computing Science. It is probably premature,for me,to be aware of the various influen- ces I have undergone during my stay in Eindhoven.Still,I have a num- ber of specific debts to record. First among these is to Professor N.G.de Bruijn who has suggested the subject of this work and has been the main source of counse1,encou- ragement and criticism during the months I was writing the book. His views on AUTOMATH and (Typed) Lambda-calculus,in genera1,have exerced a decisive influence on the present work. Next I am indebted to my colleagues in the AUTOMATH research group, who have helped me improve my understanding of the subject-matter. iii I would like to thank,in particular,L.S.van Benthem Jutting,who has spent - altogether - long weeks on several "preliminary" drafts of the main text,suggesting numerous improvements and providing detailed criticism. Many ideas on a rigorous language description of the main AUTOMATH systems - which have been used in the book - should be actually credited to D.T.van Daalen,who advised me on a couple of critical aspects of the proof-theory of AUTOMATH. Of course,I still remain the only responsible one for the possible shortcomings of the text. My debts to the literature should be obvious from the long list of Reference~~placedat the end of the book.(Quotations are given by author and year of publication/pre-print - the last two digits - for all items that are not official AUT-reports,while the AUT-reports are referred to by author,year of publication/pre-print report number.So DE BRUIJN 80-72 is Number 72 in the official THE-list of the AUT-reports.) At this point I should also acknowledge,again,my debt to Henk Baren- dregt who taught me Lambda-calculus. Hartfelt thanks to a philosopher: David Meredith,for reading and commenting on an early version of the Introduction.(I should perhaps ultimately agree with his "Proof is talk." by humbly noticing that it is so ---once we have talked one and we are able to do it again and again,just to make everybody see what we see.) Thanks are due to Professor A.S.Troelstra for listening to and commenting on my (hasty) views on solipsism in mathematics (pp. 7 -et sqq. below).In a more ~philo~ophical~~setting I would have been more careful in finding the due nuances when speaking about the ll(in)dependence of mathematical results on a communication-process", taking into account the genuine (intuitionistic) counter-examples he has produced.The final form of the discussion was kept un- changed only because I still think it reflects accurately the ll~hilo-- sophyll behind the AUTOMATH Project. I am grateful to the Mathematical Centre which accepted this work for publica- tion as a "Mathematical Centre Tract1'. Final I y, I am indebted to Mrs. Jos6e Brands (~in2hovenUniversity of Technologyland Mr. P.A.J. Hoeben (University of Utrecht) for clerical help in the final preparation of the text. CONTENTS 0. INTRODUCTION 01.AUTOMATH: historical landmarks 02 .AUTOMATH: tracing back motivations 03.AUTOMATH versus semantics 04.The contents of this work 05.Abstract AUTOMATH: definition scheme 1.LANGUAGE DEFINITION: WELL-FoRMEDNESS I0 .Alphabets to use 10 1 .Further structure on (floating) constants 11.Variable-strings 12.Term structures 121 .Terms 122.Canonical terms and definitions 123. Combinatory reduction sys tems 13. Term-strings 14 .E-sentences- 15. Contexts 16. Constructions and sites 2. LANGUAGE DEFINITION: CORRECTNESS 65 20.Correctness categories 65 2 1. Correctness for Primitive and Classical (Abstract) AUTOMATH 7 1 2 1 1. Correctness rules for PA and CA 72 212.Basic epi-theory for PA,CA: "structural lemmas" 80 2 13. Basic epi-theory : invariance under site- and/or context- expansion 9 1 214.Substitution and category correctness 95 22.Correctness for Q-A and QA 9 8 22 1. Correctness rules for Q-A and QA 103 222.Basic epi-theory for Q-A and QA 106 3.GLOBAL STRUCTURE OF CORRECTNESS: PA-SEPARATION 30.What is going on: heuristics 3 1. Tree-analysis 311.Well-formedness part 312.Analytic trees 313.Genetic trees: a digression 314.0n isolating wfe's "on" PA 32.Global structure of (LA-compatible) sites 321.Reduced sites.Reference order in LA-sites 322 .Proof theory: correctness proofs and their indices 323.Analytic sites -qua reducts and some topology 33.Conserving PA-correctness 33 1. "Conservation" over PA 332 .PA-separation and conservativity over PA REFERENCES INDEX OF NOTIONS This work is concerned with the abstract structure of some representative formal languages in the family of mathematical languages AUTOMATH (cf. DE BRUIJN 70-02, 73-3,73-34,80-72,JUTTING 79-46,VAN DAALEN 73-35,80-73).The basic analysis was mainly motivated by the need for a theoretical approach to a couple of open pro- blems concerning conservativity situations in AUTOMATH and closely related formal systems.Soon it turned out the approach which was taken in analysis is more significant for the understanding of the nature of an AUTOMATH-language than was initially thought of. Though essentially self-contained,the expository parts of the present notes do - in general - presurpose sore ~ini~albackground of mathematical logic (as,e.g., first-order logic,set theory and lambda-calculus) and of what is usually called 'If inite mathematics'' (viz. rather elementary fragments of combinatorics) .For ins- tance,some familiarity with the basics of (both "type-free" and "typed") lambda- calculus should certainly enable the reader to follow or to reconstruct,on his own, remote details of the "language theory" of AUTOMATH on which we will not generally insist (and which are copiously documented in recent monographs as BARENDREGT 81,KLOP 80,REZUS 81 and - essentially -VAN DAALEN 80-73).Otherwise,the main exposition is primarily intended for logicians and this is largely reflected in our terminological habits (diverging in several respects from standard termino- logy in AUTOMATH but very close to generally accepted ways of speaking in mathema- tical logic).Of course,mathematicians,computer scientists and philosophers having some basic acquaintance with the methods of symbolic logic are thereby expected to find the present text easily readable.
Recommended publications
  • Docworks PDF 600
    Minimax estimation in regression and random censorship models Citation for published version (APA): Belitser, E. N. (2000). Minimax estimation in regression and random censorship models. (CWI tracts; Vol. 127). Centrum voor Wiskunde en Informatica. Document status and date: Published: 01/01/2000 Document Version: Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers) Please check the document version of this publication: • A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website. • The final author version and the galley proof are versions of the publication after peer review. • The final published version features the final layout of the paper including the volume, issue and page numbers. Link to publication General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain • You may freely distribute the URL identifying the publication in the public portal.
    [Show full text]
  • Writing Cybersecurity Job Descriptions for the Greatest Impact
    Writing Cybersecurity Job Descriptions for the Greatest Impact Keith T. Hall U.S. Department of Homeland Security Welcome Writing Cybersecurity Job Descriptions for the Greatest Impact Disclaimers and Caveats • Content Not Officially Adopted. The content of this briefing is mine personally and does not reflect any position or policy of the United States Government (USG) or of the Department of Homeland Security. • Note on Terminology. Will use USG terminology in this brief (but generally translatable towards Private Sector equivalents) • Job Description Usage. For the purposes of this presentation only, the Job Description for the Position Description (PD) is used synonymously with the Job Opportunity Announcement (JOA). Although there are potential differences, it is not material to the concepts presented today. 3 Key Definitions and Concepts (1 of 2) • What do you want the person to do? • Major Duties and Responsibilities. “A statement of the important, regular, and recurring duties and responsibilities assigned to the position” SOURCE: https://www.opm.gov/policy-data- oversight/classification-qualifications/classifying-general-schedule-positions/classifierhandbook.pdf • Major vs. Minor Duties. “Major duties are those that represent the primary reason for the position's existence, and which govern the qualification requirements. Typically, they occupy most of the employee's time. Minor duties generally occupy a small portion of time, are not the primary purpose for which the position was established, and do not determine qualification requirements” SOURCE: https://www.opm.gov/policy-data- oversight/classification-qualifications/classifying-general-schedule-positions/positionclassificationintro.pdf • Tasks. “Activities an employee performs on a regular basis in order to carry out the functions of the job.” SOURCE: https://www.opm.gov/policy-data-oversight/assessment-and-selection/job-analysis/job_analysis_presentation.pdf 4 Key Definitions and Concepts (2 of 2) • What do you want to see on resumes that qualifies them to do this work? • Competency.
    [Show full text]
  • Comparative Programming Languages CM20253
    We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist And there are many more factors we could talk about in making choices of language The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design The End There are many languages out there, both general purpose and specialist We have briefly covered many aspects of language design And there are many more factors we could talk about in making choices of language Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages And then the interopability of languages becomes important For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project For example, can you easily join together code written in Java and C? The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important The End Or languages Often a single project can use several languages, each suited to its part of the project And then the interopability of languages becomes important For example, can you easily
    [Show full text]
  • List of Programming Languages
    List of programming languages The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in alphabetical order. Dialects of BASIC, esoteric programming languages, and markup languages are not included. 0–9ABCDEFGHIJKLMNOPQRSTUVWXYZ Contents: See also A A.NET ALGOL W A-0 System Alice A+ Alma-0 ABAP AmbientTalk ABC Amiga E ABC ALGOL AMOS ACC AMPL Accent AngelScript Ace DASL (Distributed Application Apache Pig latin Specification Language) Apex Action! APL ActionScript App Inventor for Android's visual block Actor language Ada AppleScript Adenine APT Agda Arc Agilent VEE ARexx Agora Argus AIMMS Assembly language Aldor AutoHotkey Alef AutoIt ALF AutoLISP / Visual LISP ALGOL 58 Averest ALGOL 60 AWK ALGOL 68 Axum B B BASIC Babbage Batch file (Windows/MS-DOS) Ballerina bc Bash BCPL BeanShell BlooP Bertrand Boo BETA Boomerang BLISS Bosque Blockly C C – ISO/IEC 9899 CLU C-- (C minus minus) CMS-2 C++ (C plus plus) – ISO/IEC 14882 COBOL – ISO/IEC 1989 C* CobolScript – COBOL Scripting language C# (C sharp) – ISO/IEC 23270 Cobra C/AL CoffeeScript Caché ObjectScript ColdFusion C Shell (csh) COMAL Caml Combined Programming Language (CPL) Cayenne COMIT CDuce Common Intermediate Language (CIL) Cecil Common Lisp (also known as CL) Cesil COMPASS Céu Component Pascal Ceylon Constraint Handling Rules (CHR) CFEngine COMTRAN Cg Cool Ch Coq Chapel Coral 66 Charm CorVision CHILL COWSEL CHIP-8 CPL chomski Cryptol ChucK Crystal Cilk Csound CL (IBM) Cuneiform Claire Curl
    [Show full text]
  • Docworks PDF 600
    P!l)_n.ted a.t .the Mathematic.al Cen.tJie, 413 K/f./.JMlaan, Am6.te.Jtdam. The Mathematic.al Cen.tJie , 6011.nded .the 11-.th 06 Feb'1.U1V1.IJ 1946, ,u., a non­ p!W 6U w:Ut.u.:tio n aJm.ing a.t .the pJWmo:Uo n o 6 pwr.e ma.the.ma:Ue!i and ill., appUc.ationJ.,. 1.t ,u., -6poY11.>01Led by .the Ne.the.Jtland6 Gove.Jtnmen.t .th!Wu.gh .the Ne..the.Jtland6 O!Lganiza:Uon 6DIL .the Advanc.e.men.t 06 PUILe Re-6e.a!Lc.h {Z.W.0.). MATHEMATICAL CENTRE TRACTS 134 PROCEEDINGS INTERNATIONAL CONFERENCE ON ALGOL 68 J.C. van VLIET (ed.) H. WUPPER (ed.) RECHENZENTRUM DER RUHR-UNIVERSITAT BOCHUM, BRD, MARCH 30-31, 1981 MATHEMATISCH CENTRUM AMSTERDAM 1981 1980 Mathematics·subjectclassification: 68-06,68B10,68B20 Co~uting Reviews: 4.22,1.52,4.34,4.12,5.23 l. INTRODUCTION "What can we do with ALGOL 68?" is the question raised by the chairman of the Standing Subcommittee on ALGOL 68 Support in the first contribution to this conference. The three main topics of the conference suggest three possible answers to this question: one can teach the language, implement it, and apply it. The papers collected in these proceedings deal with various aspects of teaching, implementation, and applications. They do not attempt to fully answer the question of what can be done, but they hopefully will provide some useful pieces of information, both to those who want to learn more about the,language, and to those who are actually involved in problems in the areas addressed.
    [Show full text]
  • (Pdf) of the School of Squiggol: a History of the Bird−Meertens
    The School of Squiggol A History of the Bird{Meertens Formalism Jeremy Gibbons University of Oxford Abstract. The Bird{Meertens Formalism, colloquially known as \Squig- gol", is a calculus for program transformation by equational reasoning in a function style, developed by Richard Bird and Lambert Meertens and other members of IFIP Working Group 2.1 for about two decades from the mid 1970s. One particular characteristic of the development of the Formalism is fluctuating emphasis on novel `squiggly' notation: sometimes favouring notational exploration in the quest for conciseness and precision, and sometimes reverting to simpler and more rigid nota- tional conventions in the interests of accessibility. This paper explores that historical ebb and flow. 1 Introduction In 1962, IFIP formed Working Group 2.1 to design a successor to the seminal algorithmic language Algol 60 [4]. WG2.1 eventually produced the specification for Algol 68 [63, 64]|a sophisticated language, presented using an elaborate two- level description notation, which received a mixed reception. WG2.1 continues to this day; technically, it retains responsibility for the Algol languages, but practi- cally it takes on a broader remit under the current name Algorithmic Languages and Calculi. Over the years, the Group has been through periods of focus and periods of diversity. But after the Algol 68 project, the period of sharpest focus covered the two decades from the mid 1970s to the early 1990s, when what later became known as the Bird{Meertens Formalism (BMF) drew the whole group together again. It is the story of those years that is the subject of this paper.
    [Show full text]
  • Topics in Programming Languages, a Philosophical Analysis Through the Case of Prolog
    i Topics in Programming Languages, a Philosophical Analysis through the case of Prolog Luís Homem Universidad de Salamanca Facultad de Filosofia A thesis submitted for the degree of Doctor en Lógica y Filosofía de la Ciencia Salamanca 2018 ii This thesis is dedicated to family and friends iii Acknowledgements I am very grateful for having had the opportunity to attend classes with all the Epimenides Program Professors: Dr.o Alejandro Sobrino, Dr.o Alfredo Burrieza, Dr.o Ángel Nepomuceno, Dr.a Concepción Martínez, Dr.o Enrique Alonso, Dr.o Huberto Marraud, Dr.a María Manzano, Dr.o José Miguel Sagüillo, and Dr.o Juan Luis Barba. I would like to extend my sincere thanks and congratulations to the Academic Com- mission of the Program. A very special gratitude goes to Dr.a María Manzano-Arjona for her patience with the troubles of a candidate with- out a scholarship, or any funding for the work, and also to Dr.o Fer- nando Soler-Toscano, for his quick and sharp amendments, corrections and suggestions. Lastly, I cannot but offer my heartfelt thanks to all the members and collaborators of the Center for Philosophy of Sciences of the University of Lisbon (CFCUL), specially Dr.a Olga Pombo, who invited me to be an integrated member in 2011. iv Abstract Programming Languages seldom find proper anchorage in philosophy of logic, language and science. What is more, philosophy of language seems to be restricted to natural languages and linguistics, and even philosophy of logic is rarely framed into programming language topics. Natural languages history is intrinsically acoustics-to-visual, phonetics- to-writing, whereas computing programming languages, under man– machine interaction, aspire to visual-to-acoustics, writing-to-phonetics instead, namely through natural language processing.
    [Show full text]
  • History and Spirit of C and C++ Olve Maudal
    History and Spirit of C and C++ Olve Maudal https://c1.staticflickr.com/1/118/300053732_0b20ed7e73.jpg To get a deep understanding of C and C++, it is useful to know the history of these wonderful programming languages. It is perhaps even more important to appreciate the driving forces, motivation and the spirit that has shaped these languages into what we have today. In the first half of this talk we go back to the early days of programmable digital computers. We will take a brief look at really old machine code, assembler, Fortran, IAL, Algol 60 and CPL, before we discuss the motivations behind BCPL, B and then early C. We will also discuss influential hardware architectures represented by EDSAC, Atlas, PDP-7, PDP-11 and Interdata 8/32. From there we quickly move through the newer language versions such as K&R C, C89, C99 and C11. In the second half we backtrack into the history again, now including Simula, Algol 68, Ada, ML, Clu into the equation. We will discuss the motivation for creating C++, and with live coding we will demonstrate by example how it has evolved from the rather primitive “C with Classes” into a supermodern and capable programming language as we now have with C++11/14 and soon with C++17. A 90 minute session at ACCU 2015, April 23, Bristol, UK Part I Part II History and spirit of C History and spirit of C++ The short version Before C++ Before C Developing the initial versions of C++ (pre-1985) Early C and K&R Development of C++ (after-1985) ANSI C Evolution of C++ by examples Modern C Q&A Part I Part II History and
    [Show full text]
  • HPC Scientific Programming: Tools and Techniques
    HPC Scientific programming: tools and techniques F. Affinito CINECA Roma - SCAI Department Roma, 4-6 November 2013 AGENDA DEL CORSO 4 novembre 2013 I Architetture I La cache ed il sistema di memoria I Pipeline I Profilers 5 novembre 2013 I Compilatori I Librerie I Floating-point 6 novembre 2013 I Makefile I Debugging Outline Introduzione Architetture La cache e il sistema di memoria Pipeline Profilers Compilatori e ottimizzazione Librerie scientifiche Floating Point Computing Makefile Bugs and Prevention Testing Static analysis Run-time analysis Debugging Conclusions Quanto possono variare le prestazioni? Prodotto matrice-matrice (misurato in secondi) Precisione singola doppia Loop incorretto 7500 7300 senza ottimizzazione 206 246 con ottimizzazione (-fast) 84 181 codice ottimizzato 23 44 Libreria ACML (seriale) 6.7 13.2 Libreria ACML (2 threads) 3.3 6.7 Libreria ACML (4 threads) 1.7 3.5 Libreria ACML (8 threads) 0.9 1.8 Pgi accelerator 3 5 CUBLAS 1.6 3.2 Qual è il margine di manovra? Software development Algoritmi I Fondamentale è la scelta dell’algoritmo I algoritmo efficiente ! buone prestazioni I algoritmo inefficiente ! cattive prestazioni I Se l’algortimo non è efficiente non ha senso tutto il discorso sulle prestazioni I Regola d’oro I Curare quanto possibile la scelta dell’algoritmo prima della codifica, altrimenti c’è la possibilità di dover riscrivere!!! Outline Introduzione Architetture La cache e il sistema di memoria Pipeline Profilers Compilatori e ottimizzazione Librerie scientifiche Floating Point Computing Makefile Bugs and Prevention
    [Show full text]
  • The Language List - Version 2.4, January 23, 1995
    The Language List - Version 2.4, January 23, 1995 Collected information on about 2350 computer languages, past and present. Available online as: http://cui_www.unige.ch/langlist ftp://wuarchive.wustl.edu/doc/misc/lang-list.txt Maintained by: Bill Kinnersley Computer Science Department University of Kansas Lawrence, KS 66045 [email protected] Started Mar 7, 1991 by Tom Rombouts <[email protected]> This document is intended to become one of the longest lists of computer programming languages ever assembled (or compiled). Its purpose is not to be a definitive scholarly work, but rather to collect and provide the best information that we can in a timely fashion. Its accuracy and completeness depends on the readers of Usenet, so if you know about something that should be added, please help us out. Hundreds of netters have already contributed to this effort. We hope that this list will continue to evolve as a useful resource available to everyone on the net with an interest in programming languages. "YOU LEFT OUT LANGUAGE ___!" If you have information about a language that is not on this list, please e-mail the relevant details to the current maintainer, as shown above. If you can cite a published reference to the language, that will help in determining authenticity. What Languages Should Be Included The "Published" Rule - A language should be "published" to be included in this list. There is no precise criterion here, but for example a language devised solely for the compiler course you're taking doesn't count. Even a language that is the topic of a PhD thesis might not necessarily be included.
    [Show full text]
  • Decision Procedures in Algebra and Logic Reading Material
    Decision procedures in Algebra and Logic Reading material PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Wed, 07 Jul 2010 00:08:49 UTC Contents Articles Some background 1 Algebraic structure 1 Mathematical logic 9 Structure (mathematical logic) 22 Universal algebra 29 Model theory 34 Proof theory 41 Sequent calculus 44 Python (programming language) 50 Sage (mathematics software) 62 Decision procedures and implementations 69 Decision problem 69 Boolean satisfiability problem 72 Constraint satisfaction 79 Rewriting 82 Maude system 87 Resolution (logic) 94 Automated theorem proving 98 Prover9 103 Method of analytic tableaux 104 Natural deduction 124 Isabelle (theorem prover) 138 Satisfiability Modulo Theories 140 Prolog 144 References Article Sources and Contributors 157 Image Sources, Licenses and Contributors 159 Article Licenses License 160 1 Some background Algebraic structure In algebra, a branch of pure mathematics, an algebraic structure consists of one or more sets closed under one or more operations, satisfying some axioms. Abstract algebra is primarily the study of algebraic structures and their properties. The notion of algebraic structure has been formalized in universal algebra. As an abstraction, an "algebraic structure" is the collection of all possible models of a given set of axioms. More concretely, an algebraic structure is any particular model of some set of axioms. For example, the monster group both "is" an algebraic structure in the concrete sense, and abstractly, "has" the group structure in common with all other groups. This article employs both meanings of "structure." This definition of an algebraic structure should not be taken as restrictive.
    [Show full text]
  • Functional and Concurrent Programming
    Functional and Concurrent Programming Simon Thompson [email protected] CO545 Lecture 1 CO545: functional and concurrent programming CO545: functional and concurrent programming Lectures 22 lectures: introduction, functional programming, concurrent programming, going further CO545: functional and concurrent programming Lectures Classes 22 lectures: introduction, 11 two-hour functional programming, terminal sessions: concurrent programming, from this week going further CO545: functional and concurrent programming Lectures Classes 22 lectures: introduction, 11 two-hour functional programming, terminal sessions: concurrent programming, from this week going further Resources Moodle for slides, lecture recordings, programs, class and seminar resources CO545: functional and concurrent programming Lectures Classes 22 lectures: introduction, 11 two-hour functional programming, terminal sessions: concurrent programming, from this week going further Resources Lecturers Moodle for Simon Thompson slides, lecture recordings, [email protected] programs, class and Dominic Orchard seminar resources [email protected] What will I learn? What will I learn? Functional ideas Values, names, evaluation, structured types, lists, higher-order functions, recursion, PBT. What will I learn? Functional ideas Concurrent ideas Values, names, evaluation, Processes and messages, structured types, lists, process ids and spawn, higher-order functions, asynchrony and mailboxes, recursion, PBT. fail-safe and exits, … What will I learn? Functional ideas Concurrent ideas Values, names, evaluation, Processes and messages, structured types, lists, process ids and spawn, higher-order functions, asynchrony and mailboxes, recursion, PBT. fail-safe and exits, … Put it into practice Using these ideas in practice in the Erlang programming language. What will I learn? Functional ideas Concurrent ideas Values, names, evaluation, Processes and messages, structured types, lists, process ids and spawn, higher-order functions, asynchrony and mailboxes, recursion, PBT.
    [Show full text]