Cargando…

Programming with higher-order logic /

"Formal systems that describe computations over syntactic structures occur frequently in computer science. Logic programming provides a natural framework for encoding and animating such systems. However, these systems often embody variable binding, a notion that must be treated carefully at a c...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Miller, Dale (Dale A.)
Otros Autores: Nadathur, Gopalan
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Cambridge : Cambridge University Press, 2012.
Temas:
Acceso en línea:Texto completo

MARC

LEADER 00000cam a2200000 a 4500
001 EBSCO_ocn796804053
003 OCoLC
005 20231017213018.0
006 m o d
007 cr cnu---unuuu
008 120626s2012 enk ob 001 0 eng d
040 |a N$T  |b eng  |e pn  |c N$T  |d IDEBK  |d EBLCP  |d MERUC  |d TXA  |d CDX  |d OCLCO  |d UKMGB  |d OCLCQ  |d OCLCF  |d OCLCQ  |d COO  |d DEBSZ  |d OCLCQ  |d ESU  |d UUM  |d CEF  |d AU@  |d OCLCQ  |d UKAHL  |d OCLCQ  |d S8J  |d OCLCQ  |d K6U  |d LUN  |d OCLCQ  |d OCLCO  |d OCLCQ  |d OCLCO  |d OCLCQ  |d OCLCO 
066 |c (S 
016 7 |a 016107922  |2 Uk 
019 |a 795895708  |a 798612931  |a 817090795  |a 1167498897 
020 |a 9781139518420  |q (electronic bk.) 
020 |a 1139518429  |q (electronic bk.) 
020 |a 9781139516570  |q (electronic bk.) 
020 |a 1139516574  |q (electronic bk.) 
020 |a 1280775084 
020 |a 9781280775086 
020 |a 9781139514927 
020 |a 113951492X 
020 |z 9780521879408 
020 |z 052187940X 
020 |a 9781139021326  |q (ebook) 
020 |a 113902132X 
024 8 |a 9786613685476 
029 1 |a DEBSZ  |b 431152152 
029 1 |a NLGGC  |b 343622815 
029 1 |a DKDLA  |b 820120-katalog:9910052622305765 
035 |a (OCoLC)796804053  |z (OCoLC)795895708  |z (OCoLC)798612931  |z (OCoLC)817090795  |z (OCoLC)1167498897 
037 |a 368547  |b MIL 
050 4 |a QA76.63  |b .M554 2012eb 
072 7 |a COM  |x 051390  |2 bisacsh 
072 7 |a COM  |x 051230  |2 bisacsh 
072 7 |a COM  |x 051440  |2 bisacsh 
072 7 |a UYA  |2 bicssc 
072 7 |a COM  |2 eflch 
082 0 4 |a 005.1/15  |2 23 
084 |a COM051010  |2 bisacsh 
049 |a UAMI 
100 1 |a Miller, Dale  |q (Dale A.) 
245 1 0 |a Programming with higher-order logic /  |c Dale Miller, Gopalan Nadathur. 
260 |a Cambridge :  |b Cambridge University Press,  |c 2012. 
300 |a 1 online resource 
336 |a text  |b txt  |2 rdacontent 
337 |a computer  |b c  |2 rdamedia 
338 |a online resource  |b cr  |2 rdacarrier 
520 |a "Formal systems that describe computations over syntactic structures occur frequently in computer science. Logic programming provides a natural framework for encoding and animating such systems. However, these systems often embody variable binding, a notion that must be treated carefully at a computational level. This book aims to show that a programming language based on a simply typed version of higher-order logic provides an elegant, declarative means for providing such a treatment. Three broad topics are covered in pursuit of this goal. First, a proof-theoretic framework that supports a general view of logic programming is identified. Second, an actual language called [Lambda]Prolog is developed by applying this view to higher-order logic. Finally, a methodology for programming with specifications is exposed by showing how several computations over formal objects such as logical formulas, functional programs, and [lambda]-terms and [pi]-calculus expressions can be encoded in [Lambda]Prolog"--  |c Provided by publisher 
504 |a Includes bibliographical references and index. 
505 0 |a Introduction -- First-order terms and representations of data -- First-order horn clauses -- First-order hereditary Harrop formulas -- Typed [lambda]-terms and formulas -- Using quantification at higher-order types -- Mechanisms for structuring large programs -- Computations over [lambda]-terms -- Unification of [lambda]-terms -- Implementing proof systems -- Computations over functional programs -- Encoding a process calculus language -- Appendix. 
588 0 |a Print version record. 
590 |a eBooks on EBSCOhost  |b EBSCO eBook Subscription Academic Collection - Worldwide 
650 0 |a Logic programming. 
650 0 |a Prolog (Computer program language) 
650 4 |a Logic programming. 
650 4 |a Prolog (Computer program language) 
650 6 |a Programmation logique. 
650 6 |a Prolog (Langage de programmation) 
650 7 |a COMPUTERS  |x Programming Languages  |x General.  |2 bisacsh 
650 7 |a COMPUTERS  |x Programming  |x Open Source.  |2 bisacsh 
650 7 |a COMPUTERS  |x Software Development & Engineering  |x General.  |2 bisacsh 
650 7 |a COMPUTERS  |x Software Development & Engineering  |x Tools.  |2 bisacsh 
650 7 |a Logic programming  |2 fast 
650 7 |a Prolog (Computer program language)  |2 fast 
700 1 |a Nadathur, Gopalan. 
776 0 8 |i Print version:  |a Miller, Dale (Dale A.).  |t Programming with higher-order logic.  |d Cambridge : Cambridge University Press, 2012  |z 9780521879408  |w (DLC) 2012016719  |w (OCoLC)774491609 
856 4 0 |u https://ebsco.uam.elogim.com/login.aspx?direct=true&scope=site&db=nlebk&AN=458666  |z Texto completo 
880 0 |6 505-00/(S  |a Cover -- Programming with Higher-Order Logic -- Title -- Copyright -- Contents -- Preface -- Introduction -- I.1 Connections between logic and computation -- I.2 Logical primitives and programming expressivity -- I.3 The meaning of higher-order logic -- I.4 Presentation style -- I.5 Prerequisites -- I.6 Organization of the book -- 1: First-Order Terms and Representations of Data -- 1.1 Sorts and type constructors -- 1.2 Type expressions -- 1.3 Typed first-order terms -- 1.4 Representing symbolic objects -- 1.5 Unification of typed first-order terms -- 1.6 Bibliographic notes -- 2 First-Order Horn Clauses -- 2.1 First-order formulas -- 2.2 Logic programming and search semantics -- 2.3 Horn clauses and their computational interpretation -- 2.4 Programming with first-order Horn clauses -- 2.4.1 Concrete syntax for program clauses -- 2.4.2 Interacting with the λProlog system -- The read phase -- The prove phase -- The print phase -- Multiple solutions -- 2.4.3 Reachability in a finite-state machine -- 2.4.4 Defining relations over recursively structured data -- 2.4.5 Programming over abstract syntax representations -- 2.5 Pragmatic aspects of computing with Horn clauses -- 2.6 The relationship with logical notions -- 2.6.1 The cut rule and cut-elimination -- 2.6.2 Different presentations of fohc -- 2.7 The meaning and use of types -- 2.7.1 Types and the categorization of expressions -- 2.7.2 Polymorphic typing -- 2.7.3 Type checking and type inference -- 2.7.4 Types and run-time computations -- 2.8 Bibliographic notes -- 3: First-Order Hereditary Harrop Formulas -- 3.1 The syntax of goals and program clauses -- 3.2 Implicational goals -- 3.2.1 Inferences among propositional clauses -- 3.2.2 Hypothetical reasoning -- 3.3 Universally quantified goals -- 3.3.1 Substitution and quantification -- 3.3.2 Quantification can link goals and clauses. 
880 8 |6 505-00/(S  |a 3.4 The relationship with logical notions -- 3.4.1 Classical versus intuitionistic logic -- 3.4.2 Intuitionistic versus minimal logic -- 3.4.3 Notable subsets of fohh -- 3.5 Bibliographic notes -- 4: Typed λ-Terms and Formulas -- 4.1 Syntax for λ-terms and formulas -- 4.2 The rules of λ-conversion -- 4.3 Some properties of λ-conversion -- 4.4 Unification problems as quantified equalities -- 4.4.1 Simplifying quantifier prefixes -- 4.4.2 Unifiers, solutions, and empty types -- 4.4.3 Examples of unification problems and their solutions -- 4.5 Solving unification problems -- 4.6 Some hard unification problems -- 4.6.1 Solving Post correspondence problems -- 4.6.2 Solving Diophantine equations -- 4.7 Bibliographic notes -- 5 Using Quantification at Higher-Order Types -- 5.1 Atomic formulas in higher-order logic programs -- 5.1.1 Flexible atoms as heads of clauses -- 5.1.2 Logical symbols within atomic formulas -- 5.2 Higher-order logic programming languages -- 5.2.1 Higher-order Horn clauses -- 5.2.2 Higher-order hereditary Harrop formulas -- 5.2.3 Extended higher-order hereditary Harrop formulas -- 5.3 Examples of higher-order programming -- 5.4 Flexible atoms as goals -- 5.5 Reasoning about higher-order programs -- 5.6 Defining some of the logical constants -- 5.7 The conditional and negation-as-failure -- 5.8 Using λ-terms as functions -- 5.8.1 Some basic computations with functional expressions -- 5.8.2 Functional difference lists -- 5.9 Higher-order unification is not a panacea -- 5.10 Comparison with functional programming -- 5.11 Bibliographic notes -- 6: Mechanisms for Structuring Large Programs -- 6.1 Desiderata for modular programming -- 6.2 A modules language -- 6.3 Matching signatures and modules -- 6.4 The logical interpretation of modules -- 6.4.1 Existential quantification in program clauses -- 6.4.2 A module as a logical formula. 
880 8 |6 505-00/(S  |a 6.4.3 Interpreting queries against modules -- 6.4.4 Module accumulation as scoped inlining of code -- 6.5 Some programming aspects of the modules language -- 6.5.1 Hiding and abstract datatypes -- 6.5.2 Code extensibility and modular composition -- 6.5.3 Signature accumulation and parametrization of modules -- 6.5.4 Higher-order programming and predicate visibility -- 6.6 Implementation considerations -- 6.7 Bibliographic notes -- 7: Computations over λ-Terms -- 7.1 Representing objects with binding structure -- 7.1.1 Encoding logical formulas with quantifiers -- 7.1.2 Encoding untyped λ-terms -- 7.1.3 Properties of the encoding of binding -- 7.2 Realizing object-level substitution -- 7.3 Mobility of binders -- 7.4 Computing with untyped λ-terms -- 7.4.1 Computing normal forms -- 7.4.2 Reduction based on paths through terms -- 7.4.3 Type inference -- 7.4.4 Translating to and from de Bruijn syntax -- 7.5 Computations over first-order formulas -- 7.6 Specifying object-level substitution -- 7.7 The λ-tree approach to abstract syntax -- 7.8 The Lλ subset of λProlog -- 7.9 Bibliographic notes -- 8: Unification of λ-terms -- 8.1 Properties of the higher-order unification problem -- 8.2 A procedure for checking for unifiability -- 8.2.1 Simplification of rigid-rigid equations -- 8.2.2 Substitutions for equations between flexible and rigid terms -- 8.2.3 The iterative transformation of unification problems -- 8.2.4 Unification problems with only flexible-flexible equations -- 8.2.5 Nontermination of reductions -- 8.2.6 Matching trees -- 8.3 Higher-order pattern unification -- 8.4 Pragmatic aspects of higher-order unification -- 8.5 Bibliographic notes -- 9: Implementing Proof Systems -- 9.1 Deduction in propositional intuitionistic logic -- 9.2 Encoding natural deduction for intuitionistic logic -- 9.3 A theorem prover for classical logic. 
880 8 |6 505-00/(S  |a 9.4 A general architecture for theorem provers -- 9.4.1 Goals and tactics -- 9.4.2 Combining tactics into proof strategies -- 9.5 Bibliographic notes -- 10: Computations over Functional Programs -- 10.1 The miniFP programming language -- 10.2 Specifying evaluation for miniFP programs -- 10.2.1 A big-step-style specification -- 10.2.2 A specification using evaluation contexts -- 10.3 Manipulating functional programs -- 10.3.1 Partial evaluation of miniFP programs -- 10.3.2 Transformation to continuation passing style -- 10.4 Bibliographic notes -- 11: Encoding a Process Calculus Language -- 11.1 Representing the expressions of the π-calculus -- 11.2 Specifying one-step transitions -- 11.3 Animating π-calculus expressions -- 11.4 May- versus must-judgments -- 11.5 Mapping the λ-calculus into the π-calculus -- 11.6 Bibliographic notes -- Appendix: The Teyjus system -- A.1 An overview of the Teyjus system -- A.2 Interacting with the Teyjus system -- A.3 Using modules within the Teyjus system -- A.4 Special features of the Teyjus system -- A.4.1 Built-in types and predicates -- A.4.2 Deviations from the language assumed in this book -- Bibliography -- Index. 
938 |a Askews and Holts Library Services  |b ASKH  |n AH24076458 
938 |a Askews and Holts Library Services  |b ASKH  |n AH37563167 
938 |a Askews and Holts Library Services  |b ASKH  |n AH33350540 
938 |a Coutts Information Services  |b COUT  |n 22677167  |c 37.50 GBP 
938 |a ProQuest Ebook Central  |b EBLB  |n EBL944707 
938 |a EBSCOhost  |b EBSC  |n 458666 
938 |a ProQuest MyiLibrary Digital eBook Collection  |b IDEB  |n 368547 
994 |a 92  |b IZTAP