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...
Gespeichert in:
1. Verfasser: | |
---|---|
Weitere Verfasser: | |
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Cambridge :
Cambridge University Press,
2012.
|
Schlagworte: | |
Online-Zugang: | Volltext |
Zusammenfassung: | "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"-- |
Beschreibung: | 1 online resource |
Bibliographie: | Includes bibliographical references and index. |
ISBN: | 9781139518420 1139518429 9781139516570 1139516574 1280775084 9781280775086 9781139514927 113951492X 9781139021326 113902132X |
Internformat
MARC
LEADER | 00000cam a2200000 a 4500 | ||
---|---|---|---|
001 | ZDB-4-EBA-ocn796804053 | ||
003 | OCoLC | ||
005 | 20241004212047.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 |d OCLCL |d OCLCQ | ||
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 | |
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 | 7 | |a 005.1/15 |2 23 | |
084 | |a COM051010 |2 bisacsh | ||
049 | |a MAIN | ||
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. | |
650 | 0 | |a Logic programming. |0 http://id.loc.gov/authorities/subjects/sh86003454 | |
650 | 0 | |a Prolog (Computer program language) |0 http://id.loc.gov/authorities/subjects/sh85107397 | |
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 | |l FWS01 |p ZDB-4-EBA |q FWS_PDA_EBA |u https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=458666 |3 Volltext |
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 GEBAY | ||
912 | |a ZDB-4-EBA | ||
049 | |a DE-863 |
Datensatz im Suchindex
DE-BY-FWS_katkey | ZDB-4-EBA-ocn796804053 |
---|---|
_version_ | 1816881799447445504 |
adam_text | |
any_adam_object | |
author | Miller, Dale (Dale A.) |
author2 | Nadathur, Gopalan |
author2_role | |
author2_variant | g n gn |
author_facet | Miller, Dale (Dale A.) Nadathur, Gopalan |
author_role | |
author_sort | Miller, Dale |
author_variant | d m dm |
building | Verbundindex |
bvnumber | localFWS |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.63 .M554 2012eb |
callnumber-search | QA76.63 .M554 2012eb |
callnumber-sort | QA 276.63 M554 42012EB |
callnumber-subject | QA - Mathematics |
collection | ZDB-4-EBA |
contents | 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. |
ctrlnum | (OCoLC)796804053 |
dewey-full | 005.1/15 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1/15 |
dewey-search | 005.1/15 |
dewey-sort | 15.1 215 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Electronic eBook |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>11851cam a2200889 a 4500</leader><controlfield tag="001">ZDB-4-EBA-ocn796804053</controlfield><controlfield tag="003">OCoLC</controlfield><controlfield tag="005">20241004212047.0</controlfield><controlfield tag="006">m o d </controlfield><controlfield tag="007">cr cnu---unuuu</controlfield><controlfield tag="008">120626s2012 enk ob 001 0 eng d</controlfield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">N$T</subfield><subfield code="b">eng</subfield><subfield code="e">pn</subfield><subfield code="c">N$T</subfield><subfield code="d">IDEBK</subfield><subfield code="d">EBLCP</subfield><subfield code="d">MERUC</subfield><subfield code="d">TXA</subfield><subfield code="d">CDX</subfield><subfield code="d">OCLCO</subfield><subfield code="d">UKMGB</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCF</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">COO</subfield><subfield code="d">DEBSZ</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">ESU</subfield><subfield code="d">UUM</subfield><subfield code="d">CEF</subfield><subfield code="d">AU@</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">UKAHL</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">S8J</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">K6U</subfield><subfield code="d">LUN</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCQ</subfield><subfield code="d">OCLCO</subfield><subfield code="d">OCLCL</subfield><subfield code="d">OCLCQ</subfield></datafield><datafield tag="066" ind1=" " ind2=" "><subfield code="c">(S</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">016107922</subfield><subfield code="2">Uk</subfield></datafield><datafield tag="019" ind1=" " ind2=" "><subfield code="a">795895708</subfield><subfield code="a">798612931</subfield><subfield code="a">817090795</subfield><subfield code="a">1167498897</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781139518420</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1139518429</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781139516570</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1139516574</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">1280775084</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781280775086</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781139514927</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">113951492X</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">9780521879408</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">052187940X</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9781139021326</subfield><subfield code="q">(ebook)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">113902132X</subfield></datafield><datafield tag="024" ind1="8" ind2=" "><subfield code="a">9786613685476</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)796804053</subfield><subfield code="z">(OCoLC)795895708</subfield><subfield code="z">(OCoLC)798612931</subfield><subfield code="z">(OCoLC)817090795</subfield><subfield code="z">(OCoLC)1167498897</subfield></datafield><datafield tag="037" ind1=" " ind2=" "><subfield code="a">368547</subfield><subfield code="b">MIL</subfield></datafield><datafield tag="050" ind1=" " ind2="4"><subfield code="a">QA76.63</subfield><subfield code="b">.M554 2012eb</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">COM</subfield><subfield code="x">051390</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">COM</subfield><subfield code="x">051230</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">COM</subfield><subfield code="x">051440</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">UYA</subfield><subfield code="2">bicssc</subfield></datafield><datafield tag="072" ind1=" " ind2="7"><subfield code="a">COM</subfield><subfield code="2">eflch</subfield></datafield><datafield tag="082" ind1="7" ind2=" "><subfield code="a">005.1/15</subfield><subfield code="2">23</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">COM051010</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">MAIN</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Miller, Dale</subfield><subfield code="q">(Dale A.)</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Programming with higher-order logic /</subfield><subfield code="c">Dale Miller, Gopalan Nadathur.</subfield></datafield><datafield tag="260" ind1=" " ind2=" "><subfield code="a">Cambridge :</subfield><subfield code="b">Cambridge University Press,</subfield><subfield code="c">2012.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="520" ind1=" " ind2=" "><subfield code="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"--</subfield><subfield code="c">Provided by publisher</subfield></datafield><datafield tag="504" ind1=" " ind2=" "><subfield code="a">Includes bibliographical references and index.</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="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.</subfield></datafield><datafield tag="588" ind1="0" ind2=" "><subfield code="a">Print version record.</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Logic programming.</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh86003454</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Prolog (Computer program language)</subfield><subfield code="0">http://id.loc.gov/authorities/subjects/sh85107397</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Logic programming.</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Prolog (Computer program language)</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Programmation logique.</subfield></datafield><datafield tag="650" ind1=" " ind2="6"><subfield code="a">Prolog (Langage de programmation)</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS</subfield><subfield code="x">Programming Languages</subfield><subfield code="x">General.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS</subfield><subfield code="x">Programming</subfield><subfield code="x">Open Source.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS</subfield><subfield code="x">Software Development & Engineering</subfield><subfield code="x">General.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">COMPUTERS</subfield><subfield code="x">Software Development & Engineering</subfield><subfield code="x">Tools.</subfield><subfield code="2">bisacsh</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Logic programming</subfield><subfield code="2">fast</subfield></datafield><datafield tag="650" ind1=" " ind2="7"><subfield code="a">Prolog (Computer program language)</subfield><subfield code="2">fast</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Nadathur, Gopalan.</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">Miller, Dale (Dale A.).</subfield><subfield code="t">Programming with higher-order logic.</subfield><subfield code="d">Cambridge : Cambridge University Press, 2012</subfield><subfield code="z">9780521879408</subfield><subfield code="w">(DLC) 2012016719</subfield><subfield code="w">(OCoLC)774491609</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="l">FWS01</subfield><subfield code="p">ZDB-4-EBA</subfield><subfield code="q">FWS_PDA_EBA</subfield><subfield code="u">https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=458666</subfield><subfield code="3">Volltext</subfield></datafield><datafield tag="880" ind1="0" ind2=" "><subfield code="6">505-00/(S</subfield><subfield code="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.</subfield></datafield><datafield tag="880" ind1="8" ind2=" "><subfield code="6">505-00/(S</subfield><subfield code="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.</subfield></datafield><datafield tag="880" ind1="8" ind2=" "><subfield code="6">505-00/(S</subfield><subfield code="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.</subfield></datafield><datafield tag="880" ind1="8" ind2=" "><subfield code="6">505-00/(S</subfield><subfield code="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.</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">Askews and Holts Library Services</subfield><subfield code="b">ASKH</subfield><subfield code="n">AH24076458</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">Askews and Holts Library Services</subfield><subfield code="b">ASKH</subfield><subfield code="n">AH37563167</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">Askews and Holts Library Services</subfield><subfield code="b">ASKH</subfield><subfield code="n">AH33350540</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">Coutts Information Services</subfield><subfield code="b">COUT</subfield><subfield code="n">22677167</subfield><subfield code="c">37.50 GBP</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">ProQuest Ebook Central</subfield><subfield code="b">EBLB</subfield><subfield code="n">EBL944707</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">EBSCOhost</subfield><subfield code="b">EBSC</subfield><subfield code="n">458666</subfield></datafield><datafield tag="938" ind1=" " ind2=" "><subfield code="a">ProQuest MyiLibrary Digital eBook Collection</subfield><subfield code="b">IDEB</subfield><subfield code="n">368547</subfield></datafield><datafield tag="994" ind1=" " ind2=" "><subfield code="a">92</subfield><subfield code="b">GEBAY</subfield></datafield><datafield tag="912" ind1=" " ind2=" "><subfield code="a">ZDB-4-EBA</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-863</subfield></datafield></record></collection> |
id | ZDB-4-EBA-ocn796804053 |
illustrated | Not Illustrated |
indexdate | 2024-11-27T13:18:28Z |
institution | BVB |
isbn | 9781139518420 1139518429 9781139516570 1139516574 1280775084 9781280775086 9781139514927 113951492X 9781139021326 113902132X |
language | English |
oclc_num | 796804053 |
open_access_boolean | |
owner | MAIN DE-863 DE-BY-FWS |
owner_facet | MAIN DE-863 DE-BY-FWS |
physical | 1 online resource |
psigel | ZDB-4-EBA |
publishDate | 2012 |
publishDateSearch | 2012 |
publishDateSort | 2012 |
publisher | Cambridge University Press, |
record_format | marc |
spelling | Miller, Dale (Dale A.) Programming with higher-order logic / Dale Miller, Gopalan Nadathur. Cambridge : Cambridge University Press, 2012. 1 online resource text txt rdacontent computer c rdamedia online resource cr rdacarrier "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"-- Provided by publisher Includes bibliographical references and index. 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. Print version record. Logic programming. http://id.loc.gov/authorities/subjects/sh86003454 Prolog (Computer program language) http://id.loc.gov/authorities/subjects/sh85107397 Logic programming. Prolog (Computer program language) Programmation logique. Prolog (Langage de programmation) COMPUTERS Programming Languages General. bisacsh COMPUTERS Programming Open Source. bisacsh COMPUTERS Software Development & Engineering General. bisacsh COMPUTERS Software Development & Engineering Tools. bisacsh Logic programming fast Prolog (Computer program language) fast Nadathur, Gopalan. Print version: Miller, Dale (Dale A.). Programming with higher-order logic. Cambridge : Cambridge University Press, 2012 9780521879408 (DLC) 2012016719 (OCoLC)774491609 FWS01 ZDB-4-EBA FWS_PDA_EBA https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=458666 Volltext 505-00/(S 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. 505-00/(S 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. 505-00/(S 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. 505-00/(S 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. |
spellingShingle | Miller, Dale (Dale A.) Programming with higher-order logic / 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. Logic programming. http://id.loc.gov/authorities/subjects/sh86003454 Prolog (Computer program language) http://id.loc.gov/authorities/subjects/sh85107397 Logic programming. Prolog (Computer program language) Programmation logique. Prolog (Langage de programmation) COMPUTERS Programming Languages General. bisacsh COMPUTERS Programming Open Source. bisacsh COMPUTERS Software Development & Engineering General. bisacsh COMPUTERS Software Development & Engineering Tools. bisacsh Logic programming fast Prolog (Computer program language) fast |
subject_GND | http://id.loc.gov/authorities/subjects/sh86003454 http://id.loc.gov/authorities/subjects/sh85107397 |
title | Programming with higher-order logic / |
title_auth | Programming with higher-order logic / |
title_exact_search | Programming with higher-order logic / |
title_full | Programming with higher-order logic / Dale Miller, Gopalan Nadathur. |
title_fullStr | Programming with higher-order logic / Dale Miller, Gopalan Nadathur. |
title_full_unstemmed | Programming with higher-order logic / Dale Miller, Gopalan Nadathur. |
title_short | Programming with higher-order logic / |
title_sort | programming with higher order logic |
topic | Logic programming. http://id.loc.gov/authorities/subjects/sh86003454 Prolog (Computer program language) http://id.loc.gov/authorities/subjects/sh85107397 Logic programming. Prolog (Computer program language) Programmation logique. Prolog (Langage de programmation) COMPUTERS Programming Languages General. bisacsh COMPUTERS Programming Open Source. bisacsh COMPUTERS Software Development & Engineering General. bisacsh COMPUTERS Software Development & Engineering Tools. bisacsh Logic programming fast Prolog (Computer program language) fast |
topic_facet | Logic programming. Prolog (Computer program language) Programmation logique. Prolog (Langage de programmation) COMPUTERS Programming Languages General. COMPUTERS Programming Open Source. COMPUTERS Software Development & Engineering General. COMPUTERS Software Development & Engineering Tools. Logic programming |
url | https://search.ebscohost.com/login.aspx?direct=true&scope=site&db=nlebk&AN=458666 |
work_keys_str_mv | AT millerdale programmingwithhigherorderlogic AT nadathurgopalan programmingwithhigherorderlogic |