Commit Graph

94 Commits

Author SHA1 Message Date
William J. Bowman
a0803eb8b1 Fixed Coq generator to use eliminators
Not sure the resulting Coq code will actually type check, due to
differences in the types of Cur eliminators and Coq eliminators.
2015-04-14 18:58:54 -04:00
William J. Bowman
3be6730b1e Merge branch 'names' into actual-inductives
Conflicts:
	redex-curnel.rkt

With names finally fixed, many more tests can actually run.
* Changed uses of case to eliminators
* Fixed uses of new case* macro
* Fixed some assorted bugs in reduction of eliminators
2015-04-14 18:42:01 -04:00
William J. Bowman
f8a51e65ca Attempting to fix case typing checking
Maybe I shouldn't bother and should fix that after fixing inductives
2015-04-10 22:42:51 -04:00
William J. Bowman
9723870f14 Added capture-avoiding subst, α-equivalence
* Added capture-avoiding substitution
* Added equivalence during typing checking, including α-equivalence and
  limited β-equivalence
* Exposed better typing-check reflection features to allow typing
  checking modulo equivalence
* Tweaked QED macro to use new type-checking reflection feature.
* Fixed some test cases
2015-04-10 22:05:54 -04:00
William J. Bowman
b4090ae2cf Ahhh fucking substitution
I'm dumb
2015-03-27 21:49:03 -04:00
William J. Bowman
c4f0f723f5 Dynamic semantics for elim
elim now runs. Parts of the stdlib have been converted to use elim, but
it's complicated to program with. Need to implement case and fix in
terms of elim, I think.
2015-03-27 21:16:20 -04:00
William J. Bowman
aafd360541 Broken commit: work on dynamic semantics of elim 2015-03-26 17:46:59 -04:00
William J. Bowman
2928969691 A little clean up 2015-03-25 21:48:21 -04:00
William J. Bowman
a4862f3006 Elimination of false works! 2015-03-25 21:26:08 -04:00
William J. Bowman
7e489d52c8 Fixed typing inductive hypotheses
Fixed type checking of inductive hypotheses for elimination of inductive
types. Almost all elim tests type check. elimination of false still does
not.
2015-03-25 21:05:31 -04:00
William J. Bowman
0caeed6080 Cleaned up comments, added refernces 2015-03-25 20:29:00 -04:00
William J. Bowman
3304ed8531 First attempt at typing elim
elim now has a typing rule that works for some uses of elim, like on
"nat". However, eliminating things inductives such as "and" does not yet
work due to issue in typing methods.
2015-03-25 20:19:43 -04:00
William J. Bowman
90ba703d6f Adding well-formed constructor checking
* Added work to ensure inductive constructors actually return the type
  of the inductive they are defining. However, this currently fails for
  nats. Not sure why
2015-03-24 22:07:16 -04:00
William J. Bowman
f7ddeae5bc Fixed well-formedness checking for contexts 2015-03-24 20:36:09 -04:00
William J. Bowman
f5d387b689 Merge branch 'master' into actual-inductives 2015-03-24 20:14:00 -04:00
William J. Bowman
ba9bf0ee2b Fixed some broken comments 2015-03-24 20:13:42 -04:00
William J. Bowman
f4eeb3821a Merge branch 'master' into actual-inductives
Conflicts:
	redex-curnel.rkt
2015-03-24 20:12:22 -04:00
William J. Bowman
a468890817 Reduced complexity of substitution 2015-03-24 20:11:18 -04:00
William J. Bowman
7641ee3d1c Sketch of elim semantics, got all tests running 2015-03-24 20:09:35 -04:00
William J. Bowman
97c1d144aa A complete sketch of typing for elim-D (case) 2015-03-23 19:29:56 -04:00
William J. Bowman
807c4d7851 Added Type shorthand for tests 2015-03-23 17:39:02 -04:00
William J. Bowman
8a5bff1aec Merge branch 'master' into actual-inductives
Conflicts:
	redex-curnel.rkt
2015-03-23 17:37:04 -04:00
William J. Bowman
b185150195 More thoughts 2015-03-20 17:16:38 -04:00
William J. Bowman
2ddf7ce352 Fixed several bugs, found several more
Trying to fix proofs for free examples; found several bugs but more
still exist. Added TODOs
2015-02-20 19:12:06 -05: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
38c1ac928a Cleaning up dead code 2015-02-20 09:55:35 -05:00
William J. Bowman
2718aaec42 Musing about the correct implementation 2015-02-17 23:55:12 -05:00
William J. Bowman
e15b102a7f Starting to try to fix inductives 2015-02-17 19:09:56 -05:00
William J. Bowman
b2afc8f9d9 Bug fixes 2015-02-15 21:25:39 -05:00
William J. Bowman
410ee11cbe Fixed typo 2015-02-06 01:05:26 -05:00
William J. Bowman
af0b1a908f Fixed duplicate literal in syntax-parse 2015-02-05 12:35:44 -05:00
William J. Bowman
efcf8c1f97 Typo fixes 2015-02-05 02:39:25 -05:00
William J. Bowman
51972880b3 Note about the core, various fixes 2015-02-05 02:34:15 -05:00
William J. Bowman
027f031b20 Added some pointers about what to look at 2015-02-05 02:32:50 -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
a958056bbb Tweaked README 2015-01-30 17:57:16 -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
434c1aa72b Progress: module+ works, require/provide not yet. 2015-01-30 03:31:29 -05:00
William J. Bowman
59aff98158 Merge branch 'reflection' into cross-modules 2015-01-29 22:47:12 -05:00
William J. Bowman
e1ceb8a7d8 Renamed more curnels 2015-01-29 22:46:53 -05:00
William J. Bowman
d4aeb944e3 Merge branch 'master' into cross-modules 2015-01-29 22:45:03 -05:00
William J. Bowman
c537287df4 Merge branch 'master' into reflection 2015-01-29 22:44:55 -05:00
William J. Bowman
ec95026066 Renamed kernel to curnel. An important pun. 2015-01-29 22:44:30 -05:00