openlogicproject / openlogic Goto Github PK
View Code? Open in Web Editor NEWAn open-source, customizable intermediate logic textbook
Home Page: http://openlogicproject.org/
License: Creative Commons Attribution 4.0 International
An open-source, customizable intermediate logic textbook
Home Page: http://openlogicproject.org/
License: Creative Commons Attribution 4.0 International
!!{token} in \section puts it in running heads and PDF bookmarks. This doesn't always work.
Proof in soundness.tex is cumbersome and hard to follow. Add derivation fragments. Check/remove indefinite articles "an
Turns out what I hacked for selective inclusion/exclusion has a package:
https://www.ctan.org/tex-archive/macros/latex/contrib/tagging?lang=en
Make open-logic-selective.sty use this, unless it breaks things.
We should have a part on second-order logic, possibly together with discussion of type theory and plural logic.
Add complete coverage of Turing machines.
PDFs generated should verify as PDF/A .
See http://www.mathstat.dal.ca/~selinger/pdfa/
The Lindström's theorem chapter hard-codes the abstract logic satisfaction relation as \models_L. Needs to be replaced by something defined in open-logic-config.sty à la \Sat
Soundness has to be proved still.
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").
Need system of tagging sections, labelling theorems etc, and referencing them from other sections without having to worry about globally unique labels etc.
The chapter on completeness needs an intro.
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.
I get lots of errors of this sort:
pdfTeX warning (ext4): destination with the same identifier (name{probd.2}
) has been already used, duplicate ignored
It doesn't seem to break anything in the PDF but it shouldn't do that.
The incompleteness part has a lot of poofs with open formulas. Need to add explanation of what that means in LK to fol/seq
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.
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}
Students would like an index. Add indexing commands to the content. Tokenized text may cause problems.
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.
First-order logic gets right to it with formal definitions of languages, terms, formulas. Write an introductory chapter.
Definition 1.35 refers only to sentences, whereas in reality it can be expanded to define a property of all formulas.
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:
In point 3 of base case there is "1 = i = k" whereas it should be "1 <= i <= k"
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 )
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.
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?
In the completeness proof, we should extend to a complete set, ie, one which contains A or ~A for every A. Easier to understand than max consistency. (ht greg restall's videos)
open-logic-defer starts a Problems section at the end of each chapter. It should only do so if the chapter has problems in it.
A glossary of definitions/concepts would be helpful.
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}{}
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.
Jeremy's notes show that a function is representable in Q iff it is computable -- want alternative way that proves this for "recursive" directly without use of CTT.
The glossaries package provides the same replacement text mechanism as what is now in sty/open-logic-tokenize.sty. It may be more robust. It also allows generation of glossaries, obvs., which may be a good thing.
Proposal: change license from CC-BY-SA to CC-BY.
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:
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:
(Other free logic texts are also listed in the wiki)
We need a part that covers methods of proof, including inductive definitions and inductive proofs.
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 ."
Add glossary functionality & an index of symbols. To discuss: separate index of symbols, definitions?
Student suggestion: include pronunciation guide for symbols.
open-logic-tokens.sty contains a list of tokenized terms. need to complete this list and change terms in text files to tokenized version.
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?”"
I have seen both used. It should be used only one spelling. Maybe add a wiki entry for stuff like that.
Include a part on modal logic, both propositional and first order, including counterfactuals and philosophical applications.
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.
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
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.