Commit Graph

23 Commits

Author SHA1 Message Date
William J. Bowman
822c114f62
Fixed prop; removed define-theorem and qed macros
These macros were not really serving a good purpose. They were defined
early on to demonstrate that metaprogramming can give us Coq-like
notation, but really, we have much more interesting demos.
2015-10-03 03:33:12 -04:00
William J. Bowman
f353ad8991
Fixed coq generator for elim 2015-09-25 18:08:20 -04:00
William J. Bowman
b64d20319f
Updated documentation and examples to new elim 2015-09-25 17:50:03 -04:00
William J. Bowman
1261ef2b73
Fixed some bugs introduced by changes to sugar
Yesterday's changes to sugar broke some things:

* case isn't smart enough to infer the right things in all cases yet, so
  added previously existing case* for when it is necessary.
* reexport define-theorem and qed from sugar, since still used in prop.
2015-09-25 13:37:51 -04:00
William J. Bowman
fae24ab496
Styles tweaks
* Types now start with a Capital letter, because.
* Boolean expression no longer start with the letter b.
2015-09-22 23:32:02 -04:00
William J. Bowman
23c1b56065
Knocked off a bunch of TODOs
* Removed some TODOs that were already completed
* Added cur-match, to abstract the common (syntax-parse (cur-expand syn) ...)
  pattern
2015-09-15 18:53:53 -04:00
William J. Bowman
3ce14c3871
Refactored core
Moved all curnel code into curnel/, and split the two kernel modules
into separate files. Now the trusted core and the module/#lang stuff are
in separate files. The #lang is now reprovided by "cur.rkt", which
should also provide core agnostic sugar.
2015-09-15 18:02:36 -04:00
William J. Bowman
61bdf8f5d4 Proper names and inductive families
These fixes are merged because properly testing the latter requires
having the former, while properly implementing the former is made
simpler by having the latter.

Fixed handling of names/substitution
===
* Added capture-avoiding substitution. Closes #7
* Added equivalence during typing checking, including α-equivalence and
  limited β-equivalence. Closes #8
* Exposed better typing-check reflection features to allow typing
  checking modulo equivalence.
* Tweaked QED macro to use new type-checking reflection feature.

Fixed inductive families
===
The implementation of inductive families is now based on the theoretical
models of inductive families, rather than an ad-hoc non-dependent
pattern matcher.

* Removed case and fix from Cur and Curnel. They are replaced by elim,
  the generic eliminator for inductive families. Closes #5. Since fix is
  no more, also closes #2.
* Elimination of false works! Closes #4.
* Changed uses of case to elim in Curnel
* Changed uses of case* in Cur to use eliminators. Breaks case* API.
* Fixed Coq generator to use eliminators
* Fixed Latex generator
2015-04-14 19:16:47 -04:00
William J. Bowman
6b0d09c7d9 Redex 1.6 enables caching of judgment forms!
* Judgment form caching enables running test suite in seconds instead of
  days.
* Fixed numerous bugs after properly exercising the oll/stlc examples.
2015-02-20 18:22:04 -05:00
William J. Bowman
b3388c5413 Changed Type to Unv 0
* Type should be not be in the core language. Converted all uses of Type
  to Unv 0, potentially fixing a universe bug in the process.
* Added macro Type to Curnel that enables existing code to work more or
  less as before.
2015-02-20 18:20:55 -05:00
William J. Bowman
b13bf6471d Fixed various typos/bug, added latex generation 2015-02-05 01:40:58 -05:00
William J. Bowman
448ee8a83a Added support for generating theorems,proofs,defs
* cur-expand can now accept additional stop identifiers.
* Coq generator can now generate theorems, proofs, and definitions.
2015-02-04 20:30:24 -05:00
William J. Bowman
999800d6f1 Can now translate case to match 2015-02-04 18:48:47 -05:00
William J. Bowman
be2fd4a6af Reorganized stdlib; fixed some tests 2015-02-04 18:47:15 -05:00
William J. Bowman
26ac41f104 Splitting modules and cleaning up; most tests pass
* Split prop, nat, bool, maybe, and stlc into modules
* Reverted proofs-for-free stuff to the pre-me-fucking-about version,
  and cleaned it up.
* Fixed redex-curnel test suite. Redefinition of module+ was causing
  issues.
* Moved various var stuff to oll.
* Moved stlc examples to seperate module.
2015-01-31 00:43:07 -05:00
William J. Bowman
116449ad44 Copied examples, added TODOs 2015-01-30 18:01:46 -05:00
William J. Bowman
b79e64523a Reflection, now with the ability to run code! 2015-01-30 17:55:09 -05:00
William J. Bowman
8e768a7029 Require/provide now export/import gamma and sigma 2015-01-30 16:33:22 -05:00
William J. Bowman
d4aeb944e3 Merge branch 'master' into cross-modules 2015-01-29 22:45:03 -05:00
William J. Bowman
ec95026066 Renamed kernel to curnel. An important pun. 2015-01-29 22:44:30 -05:00
William J. Bowman
1c94591c27 Fixed various errors in expansion
* Expansion now proceeds correctly on all examples, although reduction
  does not
* Drastically reorganized how wrapper work.
* Added/remove TODOs
2015-01-28 19:56:50 -05:00
William J. Bowman
c24650ef01 Started work to enable reflection
* sigma, gamma extended at expand time
* All type-checking happens at expand time
* Locally expand all forms into core redex forms. However, this seems to
  be causing problems. Probably not controlling expansion just right.
2015-01-27 23:55:50 -05:00
William J. Bowman
96f9343029 Reorganizing "pltools" to be more suggestive 2015-01-27 19:10:54 -05:00