Commit Graph

57 Commits

Author SHA1 Message Date
William J. Bowman
b75d2ef5f4
Whitespace 2015-11-10 18:28:19 -05:00
William J. Bowman
27931803b0
More documentation 2015-11-10 18:24:38 -05:00
William J. Bowman
11f07080bd
More documentation 2015-11-10 16:30:46 -05:00
William J. Bowman
b050c4f192
Better error messages for let, in certain cases 2015-10-03 04:09:16 -04:00
William J. Bowman
b853d49b31
Fixed some tactic docs; tests that print to stdout 2015-10-03 03:55:22 -04:00
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
6b4bbf9618
Fixed issue with #%app and elim macros 2015-10-02 21:34:04 -04:00
William J. Bowman
a80c4a162f
Added a fancy let form 2015-10-02 21:14:23 -04:00
William J. Bowman
e84b7d7f2e
Merge branch 'master' of github.com:wilbowma/cur 2015-10-02 18:35:46 -04:00
Max New
44b4f5ca81 Add type-inferring constructors
Convention: /i denotes a type-inferring version of something.
2015-10-02 18:06:33 -04:00
William J. Bowman
fb7d351f12
More evaluation during type-checking
Replaces all identifiers with their definitions before type-checking.
Enables more type-checking, but *realllly* slows down type-checking.

Also a test case.
2015-09-29 22:44:39 -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
8aabbc219b
disabled test that cause setup errors 2015-09-25 20:10:32 -04:00
William J. Bowman
e54c7e5bb5
Added query-type command to sugar 2015-09-25 20:08:07 -04:00
William J. Bowman
ff2f052a21
More unicode in stdlib/sugar
closes #21
2015-09-25 19:44:37 -04:00
William J. Bowman
84359fc2fd
This is related to previous commit 2015-09-25 19:33:12 -04:00
William J. Bowman
f05be17fdf
Added Or, but can't seem to use it 2015-09-25 19:32:18 -04:00
William J. Bowman
aaaab38729
even? odd? and lots of tests
These tests reveal issue #20, and it seems some other bug that causes an
infinite loop.
2015-09-25 18:36:27 -04:00
William J. Bowman
f4d38dec51
Recovered better elim syntax in sugar.rkt 2015-09-25 17:55:25 -04:00
William J. Bowman
9681fbd9e0
Restricted elim curnel syntax
The curnel was documented as having a restricted syntax, but this was
not actually enforced. Now it is.
2015-09-25 17:50:27 -04:00
William J. Bowman
de3a4d9cf3
Merge branch 'typing-elim'
Closes #6
2015-09-25 17:25:12 -04:00
William J. Bowman
8ba4ed17d9
Fixed bug in reduction of elim
elim was not checking that the arguments to be used for the parameters
of the inductive matched the actual parameters expected, resulting in
incorrect and non-deterministic unification, and thus incorrect
reduction when the parameters were unified incorrectly.
2015-09-25 16:52:49 -04:00
William J. Bowman
2666080278
Removed dead code 2015-09-25 15:16:44 -04:00
William J. Bowman
1fd96f0140
Proof read sartactics. closes #17 2015-09-25 13:54:42 -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
bf867bca7f
Moved some features out of curnel
* run is user-definable through the existing reflection features; moved
  to sugar.
* define need not have special function support in curnel; moved to
  sugar.
* fixed relevant documentation
2015-09-25 13:36:44 -04:00
William J. Bowman
2477fe9f4b
Made case macro do more work
Now the case macro is closer to a pattern-matcher.
2015-09-24 18:01:42 -04:00
William J. Bowman
d82727a3fb
Starting fixing uses of elim, but there is a bug 2015-09-24 13:51:29 -04:00
William J. Bowman
9055662a5d
Exported some convenience features 2015-09-23 16:22:05 -04:00
William J. Bowman
aa4b0ccf82
Started documenting the tactics library 2015-09-23 00:11:21 -04:00
William J. Bowman
c5eb2ff2af
Add more boolean stuff 2015-09-22 23:32:57 -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
41b40fea2b
Commented out things that cause package to fail
Lots of tests and examples cause the package to fail to build. These
have been commented out until they can be fixed.
2015-09-22 15:32:54 -04:00
William J. Bowman
0f5026aee0
Fixed typo 2015-09-16 19:54:16 -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
a29940ec69
Cleaned up typeclass code a little 2015-09-15 17:20:37 -04:00
William J. Bowman
31603bf109
Cleaned up tactic base system
* Various style fixes
* Standardize the proof state interface/naming a little.
* Reorganized base.rkt; now easier to read
* Fixed some mismatch code/documentation
* Renamed "basic" to "standard"; basic was too close to base, and not
  really helpful.
2015-09-15 16:02:53 -04:00
William J. Bowman
13d3016c85
Fixed order in which tactic scripts are printed 2015-09-13 18:57:01 -04:00
William J. Bowman
1bb886cfbb
Introduced Sartactics!
* Added the Sartactics library, provides a sassy wrapper around the basic
  tactics.
* Added prefix-in, although it probably only works for macros
* Better syntax for define-tactic
2015-09-11 17:20:53 -04:00
William J. Bowman
f2278696b5
Refactored tactics
Refactored tactics and corrected several bugs with how tactics, modules, and environments play together.
2015-09-11 15:11:06 -04:00
William J. Bowman
d1c9b4d21c
Interactive tactics work, and more!
* Completed interactive tactics, and removed uses of eval.
* Fixed bug in intros
* Added forget tactic (untested).
2015-09-11 11:43:22 -04:00
William J. Bowman
678607afa0 Working on interactive tactic
Currently, due to multiple uses of eval, can't get this to work. Need to
redesign/reorganize tactics
2015-09-10 19:24:32 -04:00
William J. Bowman
2609cf0b08 Cleaned up tactic code, added new tactics 2015-09-10 14:03:58 -04:00
William J. Bowman
e40f0f0a7c Merge branch 'tactics' 2015-09-09 18:50:29 -04:00
William J. Bowman
9265431475 Tactics complete! after many hacks 2015-09-09 18:50:11 -04:00
William J. Bowman
07c36c9c2d Type classes are easy 2015-09-09 17:54:44 -04:00