Commit Graph

11 Commits

Author SHA1 Message Date
William J. Bowman
e08d006aba
Moved Σ to core language, since elim is there. 2015-09-30 16:21:03 -04:00
William J. Bowman
2398bd1603
Renamed languages to reflect facts: cic to tt 2015-09-30 16:16:03 -04:00
William J. Bowman
a3c3b0fca7
Fixed/sped up eliminator reduction. closes #20
* Made the primitive form of elim (elim t_0 t_1), allowing this form to be
  considered a value when t_0 and t_1 are values.
* Moved definition of values to reduction language, and fixed it. This
  fixed issues with unique decomposition, and thus fixed reduction of
  eliminators.
* Enabled caching in apply-reduction-relation* to speed up results of
  recursive calls.
2015-09-29 17:56:37 -04:00
William J. Bowman
0807128f9e
Merge branch 'issue-23'. Closes #23 2015-09-29 17:01:02 -04:00
William J. Bowman
b2d042e4a6
Fixed reduction of eliminators like (elim ==)
Fixed eliminator reduction for eliminators of inductive types whose
constructors do not have the same parameters as their type. The
canonical example is ==, which has 3 parameters, but whose constructor
refl only has two.
2015-09-29 16:58:40 -04:00
William J. Bowman
cf6f81fbd4
Added single step evaluation abilities. Closes #27
* Added single step meta-function to core
* Expose step/syn in redex-lang
* Added macro to sugar for convenience use
* Updated relevant docs (also fixed bug in reflection docs)
2015-09-29 15:41:21 -04:00
William J. Bowman
1221fb5e41
(x v) etc should be a value form
When x is a inductive constructor, (x v), and ((x v) v), and so on
should be considered values.
2015-09-27 13:33:48 -04:00
William J. Bowman
4c9c6b4e60
Analyzed and documented eliminator reduction 2015-09-25 18:48:07 -04:00
William J. Bowman
de3a4d9cf3
Merge branch 'typing-elim'
Closes #6
2015-09-25 17:25:12 -04:00
William J. Bowman
8681282ef9
Added top-interactive support/fixed top-level eval
Also fixed some random stylistic things
2015-09-22 14:06:03 -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