GithubHelp home page GithubHelp logo

openlogicproject / openlogic Goto Github PK

View Code? Open in Web Editor NEW
1.0K 1.0K 229.0 4.5 MB

An open-source, customizable intermediate logic textbook

Home Page: http://openlogicproject.org/

License: Creative Commons Attribution 4.0 International

Makefile 0.10% PostScript 18.26% TeX 81.30% Shell 0.02% HTML 0.32%

openlogic's People

Contributors

aldant avatar audreysh avatar avigad avatar beastaugh avatar claudiacauli avatar columbus240 avatar danahagg avatar feffemannen avatar furcyd avatar gabelthompson avatar greleigh avatar gshen42 avatar ionathanch avatar jdutant avatar lcamel avatar lipen avatar marcelolynch avatar marcusrossberg avatar nicolewyatt avatar oskarabrahamsson avatar pi-cla avatar pitmonticone avatar rienath avatar robinhouston avatar rzach avatar samaraburns avatar seanrsinclair avatar severen avatar timbutton avatar vinothkr 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  avatar  avatar  avatar  avatar  avatar

Watchers

 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  avatar  avatar

openlogic's Issues

Review soundness for sequent calculus

Proof in soundness.tex is cumbersome and hard to follow. Add derivation fragments. Check/remove indefinite articles "an $!E$" etc -- !E may not print as E!

Part on "Second-order Logic"

We should have a part on second-order logic, possibly together with discussion of type theory and plural logic.

open-logic-defer should offer more options

  • open-logic-defer can only print the list of problems at the end of a chapter. Add options for: end of part, in its own appendix?
  • Customize the name of problems (Exercises, etc.)
  • Level of Problems section

Add information for instructors to parts & chapters

Add information for instructors/remixers to parts, chapters and if appropriate even individual sections to (a) warn about shortcomings ("this section needs more explanatory text"), (b) highlight relation to other parts ("This chapter assumes the reader is familiar with Turing Machines/relies on the part turing-machines), (c) alert instructor to configuration options (esp tags) that are relevant ("There are two chapters on proof systems, use the prfND and prfSC tags to include or exclude material on natural deduction and the sequent calculus").

Cross-reference capability

Need system of tagging sections, labelling theorems etc, and referencing them from other sections without having to worry about globally unique labels etc.

Rename files

If 2 files have same name (or a file has same name as another in TEXINPUTS path) no guarantee the right one will be included.

Propose to rename all files with part/chapter 3-letter codes at beginning.

Proposition 1.10 has problems

It has two problems:
1 It does not include "true" as an atomic formula.
2 It uses the phrase "uniquely determined" which has not yet been defined.

Move content to content/

The main directory is getting cluttered. Proposal: move all the "parts" directories into a subdirectory content/. Requires changes to some \olimport commands in driver files depending on where to content is (eg changing

\olimport*[sets-functions-relations]{sets-functions-relations}

to

\olimport*[content/sets-functions-relations]{sets-functions-relations}

Index

Students would like an index. Add indexing commands to the content. Tokenized text may cause problems.

The irrational to irrational is rational example.

In section 5.5 around theorem 5.1, there is a discussion about how the LEM proof of "irrational to irrational is rational" is a bit unsatisfying because we do not know which numbers in particular give "irrational to irrational is rational". To bolster this point we could point out that there is a simple proof which gives explicit numbers and is intuitionistically valid: take a = \sqrt{3} and b = \log_3(4). Then a^b = 3^(\log_3(4) * 0.5) = 4^0.5 = 2. I hope I got that right.

Issue in definition 1.35

Definition 1.35 refers only to sentences, whereas in reality it can be expanded to define a property of all formulas.

Add skeleton customized file and customization sample

The current build files o-l-dev and o-l-rel compile the entire repository. We need a sample file that people can use/alter/play with:

  • open-logic-sample.tex with instructions. It would contain any local customization, additional text (e.g., front matter, syllabus, instructor info) not part of the OLP text.
  • fix up open-logic.sty so that if \jobname-customizations.sty exists, this is loaded, otherwise a stock open-logic-customization.sty is loaded.
  • open-logic-customization.sty contains all the user-side customizations (e.g. any switches, tokenization, etc.)

Separate propositional logic and first-order logic

Currently the "book" goes right into first-order logic. People might want to start with propositional logic, especially if it's for a course that continues wih propositional logic only (say, modal, intuitionistic logic). So we should separate out the propositional from the first order (quantifiers, identity) material in the chapters on proof systems so they can be included in a part on propositional logic (to be written/expanded: a first draft is in the axiomatic-deduction branch https://github.com/OpenLogicProject/OpenLogic/tree/axiomatic-deduction )

Use babel shorthands for tokenization

babel has a way of making characters active that's mch better than just setting the catcode, and provides a nifty way of defining shorthands, eg, "p expands to some command.

Sentence initial token for formula(s) doesn't exist

The documentation for the config file suggests that !P{token} should give you a capitalized plural version of the token and !S{token} a capitalized singular version. This doesn't seem to work for formula. I didn't check for the other tokens. Is it implemented yet?

Glossary

A glossary of definitions/concepts would be helpful.

Get \begin<tag>{prob} to work

Some weird interaction between o-l-defer and o-l-selective makes the opening \begin{probd} in the problem file disappear for a problem that has a tag like so: \begin{{prob}. Figure out what's goiing wrong here.

Workaround: instead of use \iftag{tag}{\begin{prob} .. \end{prob}{}

Need more explanation of proof systems

The chapters on "Sequent Calculus" and "Natural Deduction" need more examples and exercises, the soundness proofs need more detail, and we need a general section explaining what proof systems are and do.

Where to prove properties of max consistent sets

So in OpenLogicProject/OpenLogic/blob/master/first-order-logic/completeness/maximally-consistent-sets.tex we prove the properties of max consistent sets needed for completeness using the sequent calculus. But in the future we might want to have different proof systems. So do we:

  1. Have a separate version of the proof for each proof system in this file?
  2. Have alternate versions of the file?
  3. Prove these properties in first-order-logic/sequent-calculus instead and then just refer to the appropriate theorem in the completeness proof?

Additions from available (non-CC) material

Request permission & obtain LaTeX sources for additional teaching materials (handouts, lecture notes) already available on the net (but non-free). Add potential sources in comments.

To be included material should be:

  • Aimed at (or can be made to be aimed at) non-mathematical audience
  • Written in LaTeX
  • Author grants permission to adapt & distribute under CC-BY 4.0

(Other free logic texts are also listed in the wiki)

Part on "Proof Methods"

We need a part that covers methods of proof, including inductive definitions and inductive proofs.

Sets, Logic, Computation An Open Logic Text PAGE 16

I think there is a mistake in first paragraph of page 16 in the text: Sets, Logic, Computation.
But maybe I just didn't understand the definitions, I'm new on this topics so please let me know if I'm not right.
(besides my english is not very good, but I hope you can understand me)

The problem is that If (R' = R ∪ IdX) and ( R' = R \ IdX) are both the case then in follows that (R∪IdX= R \ IdX) and this last identity seems to me problematic it says that taking R and add it up Ixd is the same thing as taking R and substract from it Idx. Furthermore I think given the notation established in the first lines of this paragraph the most intuitive "formalization" of the following line: "Conversely, starting from a weak partial order, one can get astrict partial order by removing IdX"
is this R = R' \ IdX. So the mistake is in the last identity of this paragraph. Here is an extraction from the book of the mentiones paragraph:

CHAPTER 2. RELATIONS 16

"A strict partial order R on X can be turned into a weak partial
order R' by adding the identity relation on X : R' = R ∪ IdX .
Conversely, starting from a weak partial order, one can get a
strict partial order by removing IdX , i.e., R' = R \ IdX ."

Tokenize files

open-logic-tokens.sty contains a list of tokenized terms. need to complete this list and change terms in text files to tokenized version.

More motivation in "Arithmetization of Syntax"

Smith: "Ch. 14 is on the Arithmetization of Syntax. It is difficult to do this stuff with a light touch, and (as elsewhere in OLT) I’d go for adding quite a lot more arm-waving motivation, here along the lines of “Look, consider the relation Pr(p, n) which holds when p codes for a well-formed proof in Q of the wff with number n. It’s easy to see that you can check whether Pr(p, n) without going in for any open-ended searches; here, informally, is how. So Pr is going to be primitive recursive, right?”"

nonempty or non-empty

I have seen both used. It should be used only one spelling. Maybe add a wiki entry for stuff like that.

Part on "Modal Logic"

Include a part on modal logic, both propositional and first order, including counterfactuals and philosophical applications.

Make TeX find files

Since the various files live in subdirectories, need a way to make sure that they are found when compiling. This is an issue on Windows esp since it's unclear how to tell TeXmaker or whatever the editor there is where to find input files. We need some kind of system where all paths within OLP can be made relative to a base path.

More careful object/metalanguage distinction

The current fol/syn text is less than precise about when the use of a symbol is part of the object language, and when it's a part of the metalanguage, esp. when variables are concerned, e.g., a $x$ may be a schematic metavariable for variable symbols, or it may be a sloppy way of denoting a variable symbol in the language. We should clean this up; but perhaps a discussion needs to be had about how pedantic we want to be. It can cause confusion esp when we say things like "$x$ and $y$ are different variables"; "$x = y$ can be misunderstood as $s(x) = s(y)$ etc.

Part on "Model Theory"

The part on model theory has very nice proofs of interpolation/definability and Lindström's theorem, but the earlier sections on basics of model theory have to be expanded significantly, both in terms of coverage and in terms of the presentation of what's already there: much more explanation and motivation.

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.