Coder Social home page Coder Social logo

logic_and_proof's Introduction

Logic and Proof

Built using Sphinx and restructured text. Also requires convert (https://imagemagick.org) for image conversion.

How to build

The build requires python 3 (install python3-venv on ubuntu).

make install-deps
make images
make html
make latexpdf

The call to make install-deps is only required the first time, and only if you want to use the bundled version of Sphinx and Pygments with improved syntax highlighting for Lean.

The call to make images is also only required the first time, or if you add new latex source to latex_images after that.

How to test the Lean code snippets

make leantest

How to deploy

./deploy.sh leanprover logic_and_proof

How to contribute

Pull requests with corrections are welcome. Please follow our commit conventions <https://github.com/leanprover/lean/blob/master/doc/commit_convention.md>. If you have questions about whether a change will be considered helpful, please contact Jeremy Avigad, [email protected].

logic_and_proof's People

Contributors

arademaker avatar avigad avatar fpvandoorn avatar odanoburu avatar ratmice avatar robertylewis avatar soonho-tri avatar soonhokong avatar tobiasgrosser avatar williamdemeo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

logic_and_proof's Issues

relations: last proof sec 13.1

https://leanprover.github.io/logic_and_proof/relations.html

Theorem. Suppose :math:\leq is a partial order on a domain :math:A. Define :math:a < b to mean that :math:a \leq b and :math:a \neq b. Then :math:< is a strict partial order. Moreover, if :math:\leq is total, so is :math:<.

The second paragraph of the proof of the above theorem says

To show transitivity, suppose :math:a < b and :math:b < c. Then we have :math:a \leq b, :math:b \leq c, :math:a \neq b, and :math:b \neq c. By the transitivity of :math:\leq, we have :math:a \leq c. To show :math:a < c, we only have to show :math:a \neq c. So suppose :math:a = c. then, from the hypotheses, we have :math:c < b and :math:b < c, violating asymmetry. So :math:a \neq c, as required.

I believe this proof is wrong; we can't use the asymmetry of <. This property was proved using the transitivity of this relation, the one we are trying to prove. A possible alternative would be:

To show transitivity, suppose :math:a < b and :math:b < c. Then we have :math:a \leq b, :math:b \leq c, :math:a \neq b, and :math:b \neq c. By the transitivity of :math:\leq, we have :math:a \leq c. To show :math:a < c, we only have to show :math:a \neq c. So suppose :math:a = c. then, from the hypotheses, we have :math:c < b and :math:b < c, and by the definition :math:< we have :math:c \leq b, :mathb\leq c, :math:c\neq b and :math:b\neq c which violates the antisymmetry of :math:\leq. So :math:a \neq c, as required.

Does it make sense?

building the epub

I got many error like

writing output... [100%] venv/lib/python3.7/site-packages/sphinx/ext/autosummary/templates/autosummary/module
/Users/ar/work/logic_and_proof/classical_reasoning.rst:237: WARNING: Could not lex literal_block as "lean". Highlighting skipped.
/Users/ar/work/logic_and_proof/classical_reasoning.rst:378: WARNING: Could not lex literal_block as "lean". Highlighting skipped.
...

Many inline math blocks are not formatted properly... any idea?

Typo

Ch. 14. An alternative is to think of ๐‘… as a function which, when applied to ๐‘Ž and ๐ต, returns the proposition that ๐‘…(๐‘Ž,๐‘) holds.

change B to lower case

Minor typographical errors in Chapter 4: Propositional Logic in Lean

  • Pdf page 25 - missing backslashes in Ascii column of table (these need escaping)
  • Pdf page 26, 3rd paragraph - "Building proofs is then a matter of writing down expressions of the write type". Was probably intended to say "right type", suggest "correct type" is less ambigious.
  • Pdf page 30 - "and introduction" and "or introduction" should probably be hyphenated for readability ("and"/"or" in the natural deduction sense of the word, not the natural language sense of the word), and for consistency with chapter 3.

Also see my attempts to address these issues in f8e4d4e and 01335a7.

Missing proof in Section 7.3

The section mentions:

In the following example, we show that if ๐ด(๐‘ฅ) always implies ยฌ๐ต(๐‘ฅ), then there cannot be an ๐‘ฅ for which both ๐ด(๐‘ฅ) and ๐ต(๐‘ฅ) holds.

Then a new paragraph starts with

There is a restriction on the term ๐‘ก that appears in the elimination rule for the universal quantifier and the introduction rule for the existential quantifier, namely, that no variable that appears in ๐‘ก becomes bound when you plug it in for ๐‘ฅ.

So it seems like the proof between the two paragraphs is missing.

Typo: 1.2 Symbolic Logic, missing "Aristotle"

Current text: "In the Prior Analytics, the ancient Greek philosopher set out to analyze patterns of reasoning, and developed the theory of the syllogism."

Corrected text: "In the Prior Analytics, the ancient Greek philosopher Aristotle set out to analyze patterns of reasoning, and developed the theory of the syllogism."

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.