The Mathematical Theory of Computation: A Comprehensive Overview
The mathematical theory of computation, a fundamental area of computer science, deals with the study of algorithms, computability, and complexity. One of the pioneering works in this field is the book "The Mathematical Theory of Computation" by Zohar Manna. In this article, we will provide an overview of the book, its significance, and its relevance to the field of computer science.
About the Book
"The Mathematical Theory of Computation" is a seminal book written by Zohar Manna, a renowned computer scientist. The book was first published in 1974 and has since become a classic in the field of computer science. The book provides a comprehensive introduction to the mathematical theory of computation, covering topics such as recursive functions, computability, and complexity theory.
Key Topics Covered
The book covers a wide range of topics, including:
- Recursive Functions: Manna introduces the concept of recursive functions, which are functions that can be defined recursively. This concept is crucial in the study of computability and complexity theory.
- Computability: The book provides an in-depth analysis of computability theory, including the famous Turing Machine model. Manna discusses the Church-Turing thesis, which states that any effectively computable function can be computed by a Turing Machine.
- Complexity Theory: Manna covers the basics of complexity theory, including time and space complexity, P vs. NP problem, and NP-completeness.
- Formal Languages: The book also covers formal languages, including regular languages, context-free languages, and recursively enumerable languages.
Significance of the Book
"The Mathematical Theory of Computation" is a significant book in the field of computer science for several reasons:
- Foundational Work: The book provides a comprehensive introduction to the mathematical theory of computation, making it a foundational work in the field.
- Influence on Research: The book has had a significant influence on research in computer science, particularly in the areas of computability and complexity theory.
- Educational Resource: The book has been widely used as a textbook in computer science courses, providing a rigorous introduction to the mathematical theory of computation.
Availability and Accessibility
The book is available in various formats, including paperback and e-book. The PDF version of the book can be downloaded from various online sources, making it easily accessible to researchers and students.
Conclusion
"The Mathematical Theory of Computation" by Zohar Manna is a seminal book that has had a lasting impact on the field of computer science. The book provides a comprehensive introduction to the mathematical theory of computation, covering topics such as recursive functions, computability, and complexity theory. Its significance extends beyond its educational value, as it has influenced research in computer science and remains a foundational work in the field.
Portable PDF Version
For those interested in accessing a portable PDF version of the book, it can be downloaded from various online sources. However, we recommend purchasing a physical copy or an e-book version from a reputable online retailer to support the author and publisher.
References
- Manna, Z. (1974). The Mathematical Theory of Computation. McGraw-Hill.
- Manna, Z. (1995). Mathematical Theory of Computation. Dover Publications.
We hope this article provides a helpful overview of the book and its significance in the field of computer science.
Zohar Manna 's seminal work, Mathematical Theory of Computation
, first published in 1974, remains a cornerstone text for transforming the "art" of program debugging into a rigorous mathematical science. The book provides a self-contained foundation for formal program verification and the logic of computer programming. Core Subjects and Structure
The book is structured to lead students from fundamental logic to advanced verification theories:
Computability: Explores the theoretical limits of what can be solved using models like finite automata and Turing machines.
Predicate Calculus: Covers basic logical notions, natural deduction, and the resolution method as the language for formal specifications.
Verification of Programs: Detailed methods for proving the correctness of both flowchart and ALGOL-like programs.
Flowchart Schemas: Formalizes program structure in predicate calculus to analyze decision problems and translation programs.
Fixpoint Theory of Programs: Discusses recursive programs and functionals, using fixpoint theory as a mathematical basis for semantics. Key Themes and Impact
Zohar Manna ’s 1974 classic, Mathematical Theory of Computation
, is a foundational textbook that aims to transform the "art" of debugging into a formal science of verification. Originally published by McGraw-Hill and later reprinted by Dover Publications
, this 448-page volume provides a self-contained treatment of the mathematical logic required to prove program correctness. Google Books Core Subjects and Framework
The book is structured into five primary areas that build toward the formal verification of sequential programs: Google Books Computability Theory
: Covers the fundamental capabilities and limitations of computation, featuring discussions on finite automata and Turing machines. Predicate Calculus
: Establishes the logical groundwork using basic notions, natural deduction, and the resolution method to formalize program properties. Verification of Programs
: Introduces techniques for both flowchart-style and Algol-like programs, focusing on proving they perform their intended tasks. Flowchart Schemas
: Explores decision problems and the translation of programs into predicate calculus for formal analysis. Fixpoint Theory of Programs
: Discusses functions, functionals, and recursive programs, using the "least fixpoint" concept to define the semantics of recursion. Significant Concepts
The text is well-known for its rigorous approach to "correctness": Google Books Computability theory
The Mathematical Theory of Computation: A Comprehensive Overview
The mathematical theory of computation, a fundamental concept in computer science, deals with the study of algorithms, computability, and complexity. One of the pioneers in this field is Zohar Manna, an Israeli-American computer scientist who made significant contributions to the development of the mathematical theory of computation. In this article, we will provide an in-depth analysis of the mathematical theory of computation, its key concepts, and the relevance of Zohar Manna's work. We will also discuss the availability of his book, "Mathematical Theory of Computation" in PDF format.
What is the Mathematical Theory of Computation?
The mathematical theory of computation is a branch of computer science that focuses on the study of algorithms, their efficiency, and their limitations. It provides a mathematical framework for analyzing and designing algorithms, which are essential for solving computational problems. The theory of computation is divided into several areas, including:
- Automata theory: This area deals with the study of automata, which are abstract machines that can perform computations.
- Computability theory: This area focuses on the study of computable functions, which are functions that can be computed by a machine.
- Complexity theory: This area deals with the study of the resources required to solve computational problems, such as time and space complexity.
Key Concepts in the Mathematical Theory of Computation
Some of the key concepts in the mathematical theory of computation include:
- Turing machines: A Turing machine is a simple abstract machine that can perform computations. It is used to study computability and complexity.
- Algorithms: An algorithm is a well-defined procedure for solving a computational problem.
- NP-completeness: A problem is said to be NP-complete if it is in NP (verifiable in polynomial time) and every problem in NP can be reduced to it in polynomial time.
- Decidability: A problem is said to be decidable if there exists an algorithm that can solve it.
Zohar Manna's Contributions
Zohar Manna, an Israeli-American computer scientist, made significant contributions to the development of the mathematical theory of computation. He is known for his work on:
- Mathematical theory of computation: Manna's book, "Mathematical Theory of Computation," provides a comprehensive overview of the mathematical theory of computation.
- Linear and nonlinear temporal logic: Manna and his colleagues developed a temporal logic framework for specifying and verifying the behavior of programs.
- Automatic programming: Manna worked on automatic programming, which involves the use of computers to generate programs automatically.
"Mathematical Theory of Computation" by Zohar Manna
The book "Mathematical Theory of Computation" by Zohar Manna is a classic in the field of computer science. The book provides a comprehensive overview of the mathematical theory of computation, including:
- Introduction to algorithms: The book provides an introduction to algorithms, including their definition, design, and analysis.
- Computability theory: The book covers computability theory, including Turing machines, recursive functions, and the halting problem.
- Complexity theory: The book discusses complexity theory, including time and space complexity, NP-completeness, and decidability.
Availability of the Book in PDF Format
The book "Mathematical Theory of Computation" by Zohar Manna is widely available in print and digital formats. However, for those looking for a free PDF version, there are some options:
- Online libraries: Some online libraries, such as the Internet Archive, provide free access to the book in PDF format.
- University repositories: Some universities make the book available in PDF format through their online repositories.
- Portable document format (PDF) repositories: There are several PDF repositories that provide free access to the book in PDF format.
Conclusion
The mathematical theory of computation is a fundamental concept in computer science, and Zohar Manna's work has had a significant impact on the development of this field. The book "Mathematical Theory of Computation" by Manna is a comprehensive resource for anyone interested in learning about the mathematical theory of computation. While there are some options available for accessing the book in PDF format, it is essential to ensure that the source is legitimate and respects the author's copyright.
Recommendations
For those interested in learning more about the mathematical theory of computation, we recommend:
- "Mathematical Theory of Computation" by Zohar Manna: This book provides a comprehensive overview of the mathematical theory of computation.
- "Introduction to Algorithms" by Thomas H. Cormen: This book provides an introduction to algorithms, including their design and analysis.
- "Computability and Complexity" by Dexter Kozen: This book covers computability theory and complexity theory.
Future Directions
The mathematical theory of computation continues to evolve, with new developments and advancements being made regularly. Some areas of future research include:
- Quantum computing: The study of quantum algorithms and their applications.
- Artificial intelligence: The development of algorithms and techniques for artificial intelligence.
- Cybersecurity: The study of algorithms and techniques for ensuring the security of computer systems.
By continuing to advance our understanding of the mathematical theory of computation, we can develop more efficient algorithms, improve the performance of computer systems, and solve complex computational problems.
You're looking for a portable version of the mathematical theory of computation by Zohar Manna, specifically a PDF version with 19 chapters. Here's some relevant information:
Book Details:
- Title: Mathematical Theory of Computation
- Author: Zohar Manna
- Publication Date: 1974
- Publisher: McGraw-Hill
Table of Contents (19 chapters):
- Introduction
- Mathematical Preliminaries
- Algorithms and Computability
- Recursive Functions
- Primitive Recursive Functions
- Gödel's Incompleteness Theorem
- Markov Algorithms
- Turing Machines
- Computability and Decidability
- Undecidability
- Recursively Enumerable Sets
- Creative Sets and Productive Sets
- Simple Sets and Immune Sets
- Complete Sets
- Degrees of Unsolvability
- Oracle Machines
- Hierarchies of Sets
- Recursively Enumerable Operators
- Applications to Program Verification
PDF Availability:
You can find a PDF version of the book "Mathematical Theory of Computation" by Zohar Manna on various online platforms, including:
- Internet Archive (archive.org)
- Google Books (books.google.com)
- ResearchGate (researchgate.net)
- Academia.edu (academia.edu)
Portable Version:
To access a portable version of the PDF, you can try the following:
- Download the PDF from one of the above platforms.
- Use a PDF reader app on your mobile device or tablet, such as Adobe Acrobat Reader or Foxit Reader.
- Consider converting the PDF to a more portable format, such as EPUB or MOBI, using tools like Calibre or SmallPDF.
Caution:
When downloading PDFs from online platforms, ensure that you are not violating any copyright laws or terms of service. Some platforms may require you to create an account or provide attribution to access the content.
Zohar Manna's Mathematical Theory of Computation is a foundational text in computer science, originally published in 1974 by McGraw-Hill and later reprinted as a Dover edition. The book aims to transform the "art" of program verification (debugging) into a formal science. Access and Availability
Digital Copies: You can borrow or download digital versions through the Internet Archive.
Course Excerpts: Partial PDF documents and course materials related to the book are hosted by academic institutions like Cornell University.
Alternative Titles: For a more modern approach by the same author, see The Calculus of Computation (2007), which covers decision procedures and program verification. Core Subject Areas
The text provides a self-contained treatment of the following topics:
Computability: Detailed discussions on finite automata and Turing machines.
Predicate Calculus: Covers basic logical notions, natural deduction, and the resolution method.
Program Verification: Formal methods for proving the correctness of both flowchart-style and Algol-like programs.
Flowchart Schemas: Analysis of decision problems and formalization within predicate calculus.
Fixpoint Theory: Exploration of functions, functionals, and recursive program verification. Bibliographic Details Original Publication: 1974. Reprint: Dover Publications, 2003. Pages: Approximately 448–480 pages. ISBN-13: 978-0486432380. Mathematical theory of computation : Manna, Zohar
Mathematical theory of computation : Manna, Zohar : Free Download, Borrow, and Streaming : Internet Archive. Internet Archive MATHEMATICAL THEORY OF COMPUTATION
I can’t help find or provide pirated copies of books. If you’re looking for "Mathematical Theory of Computation" by Zohar Manna (or similarly titled works), here are lawful alternatives and a brief guide to get the material you need:
- Buy or borrow
- Check major retailers (e.g., online bookstores) for new or used copies.
- Search academic bookshops or university bookstores.
- Use your local library or interlibrary loan to borrow a physical or digital copy.
- University resources
- Look for course webpages, lecture notes, or syllabi from universities that cover Manna’s material; many professors post lecture slides and notes covering the same topics.
- Use your university library’s electronic resources (Springer, Elsevier, Wiley, JSTOR, IEEE Xplore) to access related texts.
- Legal free alternatives and supplements
- Zohar Manna’s research papers (author webpages or institutional repositories).
- Other textbooks with overlapping content:
- Michael Sipser — Introduction to the Theory of Computation
- Hopcroft, Motwani & Ullman — Introduction to Automata Theory, Languages, and Computation
- Arto Salomaa — Formal Languages
- Dexter Kozen — Automata and Computability
- OpenCourseWare (MIT OCW, Stanford, etc.) lecture notes and video courses on computability, automata, formal methods, temporal logic, and program verification.
- Topics to study (self-contained reading plan)
- Foundations: sets, relations, functions, proofs.
- Automata theory: deterministic & nondeterministic finite automata, regular expressions, Myhill–Nerode theorem.
- Formal languages: context-free grammars, pushdown automata, parsing.
- Computability: Turing machines, decidability, reducibility, Rice’s theorem.
- Complexity: P vs NP, reductions, NP-completeness, space/time hierarchies.
- Logic in computation: propositional & predicate logic, satisfiability, proof systems.
- Temporal logic & program verification: linear vs branching time, model checking.
- Formal methods: Hoare logic, weakest preconditions, program semantics.
- Advanced topics: concurrency, μ-calculus, automata on infinite objects.
-
Recommended study sequence (12-week plan — assume background in discrete math) Week 1–2: Set theory, proof techniques, automata basics. Week 3–4: Regular languages, closure properties, pumping lemma. Week 5–6: Context-free languages, pushdown automata, parsing. Week 7–8: Turing machines, decidability, reductions. Week 9: Complexity basics, P vs NP and NP-completeness. Week 10: Logic for computer science — propositional and predicate logic. Week 11: Program semantics, Hoare logic, weakest preconditions. Week 12: Temporal logic, model checking, advanced topics.
-
Exercises and practice
- Solve end-of-chapter problems from the recommended textbooks.
- Use online problem sets from university courses.
- Implement small tools: DFA/NFA simulators, regex engines, CFG parsers, simple Turing machine emulator, SAT solver experiments.
- Citation and bibliographic search
- Use Google Scholar, DBLP, and your library catalog to find exact editions and citations.
- Check WorldCat to locate nearby libraries holding the book.
If you tell me which format you prefer (paperback, e-book, lecture notes) and whether you have access to a university library, I’ll give targeted legal sources and a concise reading list tailored to that preference.
Zohar Manna 's " Mathematical Theory of Computation ", originally published in 1974 by McGraw-Hill, is widely considered a foundational pillar of theoretical computer science. For those searching for a PDF or "portable" version, this classic text is often sought after for its rigorous approach to transforming the "art" of debugging into a formal, verifiable science. Why This Text Still Matters in 2026
Even decades after its release, the concepts Manna pioneered—many while he was at the Weizmann Institute of Science—remain the bedrock of software verification and formal methods. The book is a self-contained treatment of how we prove a program does exactly what it is intended to do. Key Concepts Explored
The book is structured to lead a reader from basic logic to complex program verification:
Computability Theory: Covers the absolute limits of machines, discussing finite automata, Turing machines, and the famous halting problem.
Predicate Calculus: Provides the logical language needed for verification, including natural deduction and the resolution method.
Program Verification: Manna details methods for verifying both flowchart and Algol-like programs, using input and output predicates to guarantee termination and correctness.
Fixpoint Theory: A more advanced section dealing with recursive programs and the mathematical functionals that define them.
Flowchart Schemas: A deep dive into the formalization of program structures within the predicate calculus. Finding the Text
While users often search for "portable" PDF versions, the book remains a staple in academic libraries and is accessible through several official channels:
Internet Archive: A digital version is available for borrowing at the Internet Archive.
Dover Publications: A more modern, affordable reprint was released by Dover Publications in 2003.
Academic Resources: Course materials and partial chapters can sometimes be found through university repositories, such as Cornell University's CS5860 documentation.
Book Overview
"Mathematical Theory of Computation" by Zohar Manna is a comprehensive textbook that covers the mathematical foundations of computer science. The book provides a rigorous and systematic approach to the theory of computation, including automata, formal languages, and computability.
Table of Contents (partial)
Here's a partial table of contents to give you an idea of what the book covers:
- Introduction to the Theory of Computation
- Mathematical Preliminaries
- Automata and Languages
- Regular Languages and Finite Automata
- Context-Free Languages and Pushdown Automata
- Computability
- Turing Machines
- Recursively Enumerable Languages
PDF Version
Unfortunately, I couldn't find a direct link to a 19-page PDF version of "Mathematical Theory of Computation" by Zohar Manna. However, I can suggest some possible sources where you might find a PDF or eBook version of the book:
- Online libraries: You can try searching online libraries such as Google Books, Amazon, or university libraries that offer eBook lending services.
- Academic databases: You can also search academic databases such as ResearchGate, Academia.edu, or IEEE Xplore to see if the authors or publishers have made a PDF version available.
- eBook stores: You can check eBook stores like Kindle, Nook, or Kobo to see if they have a digital version of the book available for purchase or download.
Portable Version
If you're looking for a portable version of the book, you might consider the following options:
- eBook readers: You can download an eBook reader app on your smartphone or tablet, such as Kindle Reading App, Nook, or Kobo, to access a digital version of the book.
- PDF viewers: You can also use a PDF viewer app on your mobile device, such as Adobe Acrobat Reader, to access a PDF version of the book.
Additional Resources
If you're interested in learning more about the mathematical theory of computation, here are some additional resources you might find helpful:
- Online courses: You can search online courses on platforms like Coursera, edX, or Udemy that cover the mathematical theory of computation.
- Research papers: You can also search research papers on academic databases or online archives to stay up-to-date with the latest developments in the field.
Zohar Manna’s Mathematical Theory of Computation is a foundational pillar in theoretical computer science, first published in 1974. It transformed the "art" of debugging into a formal science by providing a rigorous mathematical framework for program verification. Key Concepts and Features
The book provides a self-contained treatment of the following core subjects:
Computability: Detailed discussions on finite automata and Turing machines.
Predicate Calculus: Basic notions of logic, including natural deduction and the resolution method.
Program Verification: Formal methods for proving the correctness of both flowchart-based and Algol-like programs.
Flowchart Schemas: Decision problems and the formalization of schemas in predicate calculus.
Fixpoint Theory: The study of recursive programs through functions and functionals. Legacy and Availability MATHEMATICAL THEORY OF COMPUTATION
Zohar Manna's Mathematical Theory of Computation is a foundational text first published in
by McGraw-Hill. It is widely recognized for transitioning the "art" of program debugging into a formal mathematical science. Google Books
A digital version is available for viewing and borrowing through the Internet Archive Key Content Overview
The book provides a self-contained treatment of several core areas in theoretical computer science: Computability Theory : Discusses finite automata and Turing machines. Predicate Calculus
: Covers basic notions, natural deduction, and the resolution method. Program Verification
: Explores methods for verifying both flowchart and Algol-like programs. Flowchart Schemas
: Examines decision problems, translation programs, and formalization in predicate calculus. Fixpoint Theory of Programs
: Analyzes recursive programs and verification through functions and functionals. Google Books Editions and Availability Original (1974) : Published by McGraw-Hill. Dover Republication (2003) : An unabridged paperback edition released by Dover Publications Related Work : Manna later co-authored "The Calculus of Computation"
(2007) with Aaron Bradley, which covers modern decision procedures and algorithmic reasoning. Amazon.com Educational Context
This text is frequently used in graduate-level computer science courses focusing on formal methods and sequential program verification. Each chapter includes problems, bibliographic remarks, and references intended for advanced students. ACM Digital Library
Mathematical Theory of Computation Zohar Manna is a foundational text in computer science, originally published by McGraw-Hill in 1974
. The book’s primary objective is to transform the "art" of debugging into a formal mathematical science by providing a rigorous framework for verifying computer programs. Amazon.com Book Overview Zohar Manna , a prominent professor at Stanford University. Original Publication: 1974 (McGraw-Hill Computer Science Series). Modern Edition: A reprint is available from Dover Publications (2003)
Sequential program verification, computability, and mathematical logic. Core Content & Table of Contents
The book is structured into five major chapters that bridge the gap between abstract mathematical theory and practical program analysis: Amazon.com Mathematical Theory of Computation - Google Books
Title: Formalizing the Infinite: A Review and Modern Perspective on Zohar Manna’s Mathematical Theory of Computation
Abstract
Zohar Manna’s 1974 seminal work, Mathematical Theory of Computation, stands as a cornerstone in the foundation of computer science. While the search query suggests a desire for a "portable" (PDF/digital) format of this classic text, this paper aims to synthesize the core contributions of Manna’s work into a concise, accessible document. We explore the transition from informal algorithms to formal mathematical structures, the hierarchy of automata, and the fundamental concepts of computability and program verification. This paper serves as a "portable" summary of Manna’s dense theoretical framework, demonstrating its enduring relevance in modern software verification.
Conclusion
The Mathematical Theory of Computation by Zohar Manna is not just a textbook; it is a historical document that shaped how we understand software today. Whether you are studying for a midterm, writing a compiler, or just interested in the history of logic, having this book in your digital library is essential.
By finding a clean, portable PDF, you ensure that you can reference Manna’s brilliant insights anytime, anywhere—proving that great knowledge never goes out of style.
Note: Always ensure you are downloading files from secure, reputable sources to protect your devices from malware.
Zohar Manna's seminal work, Mathematical Theory of Computation, originally published by McGraw-Hill in 1974 and later republished by Dover Publications, remains a foundational text in computer science. It serves as a rigorous bridge between mathematical logic and the practical "art" of program verification, aiming to transform debugging into a systematic science. Core Themes and Objectives
The primary objective of the text is to provide a self-contained treatment of the methods used to prove the correctness and termination of computer programs. Manna focuses on several critical aspects of sequential program verification:
Partial Correctness: Proving that a program produces the intended result if it halts.
Termination: Proving that a program will eventually finish its execution.
Total Correctness: Ensuring both that a program terminates and that its final output meets the given specifications. Key Subjects and Structure
The book is structured into five major sections, each concluding with bibliographic remarks and a set of problems to reinforce the material:
Computability: An introduction to the theoretical limits of what can be computed, including discussions on finite automata and Turing machines.
Predicate Calculus: Coverage of fundamental logic concepts, including natural deduction and the resolution method, which are essential for formalizing program properties.
Verification of Programs: Application of logical principles to verify both flowchart-based and ALGOL-like programs.
Flowchart Schemas: Analysis of decision problems and the formalization of program structures within predicate calculus.
Fixpoint Theory of Programs: An exploration of functions, functionals, and recursive programs, providing a mathematical basis for understanding complex recursive behavior. Significance in Computer Science
Considered a classic, the text has been translated into over a dozen languages. It is frequently cited in graduate-level courses and remains relevant for its elegant treatment of program annotations and transformation relations. While newer works like Manna and Bradley's The Calculus of Computation (2007) introduce more modern algorithmic reasoning, the original 1974 text is still prized for its foundational clarity on sequential logic. Zohar Manna's home page - Stanford CS Theory
Where to Legally Access the Book
It’s important to note that the original 1974 edition is out of print, but you have legitimate options:
- Dover Publications (2003 reprint): Dover reprinted Mathematical Theory of Computation in a low-cost paperback. This is the best legal, physical copy. ISBN-13: 978-0486432380.
- University Libraries: Many university libraries (especially those with strong CS departments) have physical or digital copies via services like SpringerLink (as part of archived content).
- Google Books / Archive.org Preview: Limited previews exist, though the full book is often restricted due to copyright (it remains under protection until at least the late 2040s, depending on the jurisdiction).
3.2 The Hoare Logic Framework
The text expands on the work of C.A.R. Hoare, utilizing axiomatic semantics. By using notation such as $P S Q$ (if precondition $P$ holds, and statement $S$ executes, then postcondition $Q$ holds), Manna provides a calculus for reasoning about code. He demonstrates how to derive the weakest precondition necessary for a program segment to produce a desired result, a technique now standard in compiler optimization and automated theorem proving.
The Ultimate Guide to Finding Zohar Manna’s "Mathematical Theory of Computation" (PDF Edition)
In the world of computer science, certain texts transcend their publication date to become timeless pillars of knowledge. One such work is Zohar Manna’s Mathematical Theory of Computation.
If you have been searching for a PDF version of this book—specifically looking for that elusive "portable" copy to keep on your e-reader or tablet—you aren't alone. First published in 1974, this book remains a cornerstone for anyone serious about the theoretical underpinnings of programming.
In this post, we explore why this text is still vital, what makes a "portable" PDF so valuable for modern students, and how you can access this classic resource.
2. The Formalization of Computation
Manna’s work begins with the premise that programs are mathematical objects. To reason about them, one must define precise models.
