Oak is a proof checker focused on simplicity, readability, and ease of use.
For more information, go to oakproof.org.
- Ruby programming language version ≥ 2.0
gem install oakproof
The gem includes E, the external theorem prover used by Oak.
Oak is a command-line application which takes a proof file as input, and tells you whether or not the proof is correct. See oakproof.org for examples and a tutorial.
oak [-v] [-c] [-f] [-m] [-w] <filename>
-v print the version number of Oak
-c check for unneeded citations
-f look for a fix
-m assume until marker
-w wait for validity (does not change proof outcome)
- The Pulsar text editor (formerly Atom) has a package language-oak which provides syntax highlighting, automatic indentation, and comment toggling for Oak.
- For syntax highlighting on web pages, there is a highlight.js language definition for Oak.
- Similar packages for other editors would be welcome.
- fix issue with gemspec
- converted to a gem, for ease of installation and upgrade
-moption to assume until marker-foption to fix the proof by adding citations- added
?syntax to find a missing citation - added proof of number of subsets of a set to
set.oak - new example:
descartes.oak
- improved cross-platform portability
- added support for predicates in quantifiers, like
for all odd n - gave
iff,if, andimplieslower precedence - new examples:
godel_disjunction.oak,product.oak,bernstein.oak,recursion.oak
- new feature: parameterized tie-ins
- new examples:
list.oak,graph.oak,konigsberg.oak,leibniz.oak - moved comprehension axioms into
comprehension.oak
- new examples:
infinite_primes.oakandset.oak - merged
peano.oakintonaturals.oakand expanded -woption to wait for validity if unknown- extra check to ensure
A implies Aalways succeeds - added
not incondition - added
for at most onequantifier - improved assumption printing
- simplified quantifier variable list syntax
exitnow skips rest of proof, not just current file- proofs with
exitare now marked incomplete
- add "tie-ins" for variables
-coption to check for unneeded citations- new examples:
kalam.oakandsquare_root_two.oak - print notice when
exitis called
- performance improvement from internal reworking of scopes/bindings
- variables bound with
definecan no longer be re-bound in the same scope
- initial release
Many thanks to Stephan Schulz, the author of E, for answering questions and adding options to E to better support Oak.