Fedor Isakov
012b8963cb
Fix errors found by model checker in lambdacalc sample.
2019-01-31 12:05:21 +01:00
Fedor Isakov
9243c00c65
Fix issues found by model checker (ex typesystem).
2019-01-31 11:30:02 +01:00
grigorii.kirgizov
8d7bdcf173
lc: minor: Remove unneeded checkConstraints in subsumption
...
This case is anyhow handled by typeConstraints_discharge rule, when subsumes_leaves fires up,
even before those removed checks repeat this work.
2019-01-28 17:02:55 +03:00
grigorii.kirgizov
172f74b6f8
lc: minor: Add some comments. Some cleanup.
2019-01-28 16:59:05 +03:00
grigorii.kirgizov
a2012219b7
lc: Fix spurious typeConstraints reactivation on forall gen. Fix recursive case in instanceCheck.
...
As a consequence, there's a simplification of produceTypeConstraints rules.
Also add comments and fix some test cases: some of them are actually typeable.
Now tests are correct (checked against Haskell's typechecker) and all pass.
2019-01-28 13:32:32 +03:00
grigorii.kirgizov
0a5a7ec3c6
lc: minor: in 'typeclasses' restructure rule for Typeclass, add few comments, add Doc for failing type output (TypeclassesTest)
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
41e8d3d96e
lc: Fix forgotten typeOf rule for 'fix' operator. Add typeclasses tests to test suite.
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
2a44bb0ef0
lc: Fix absence of type output in some cases -- match in `produceTypeConstraints` rule in a different way
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
d364dc24e4
lc: add type output (with a workaround) for Constraints in 'recover'
...
Workaround: ConstraintRepr SNode is added specifically for outputting types.
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
4044b7f5e8
lc: Split typeConstraints constraint to two, according to its 2 types of usages: as typevar def and as actual Constraints
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
ecc6c4aed2
lc: Add Constraint check for unified terms. Few fixes for typeclasses. Add typecheck deps for typeclasses. Some tests.
...
Some Constraints checks are not covered by 'subsumed', so, need top rule for discharging those.
Fix Constraint set production in 'types', use new set for each type var. Fix 'instance' constraint.
2019-01-28 11:38:33 +03:00
grigorii.kirgizov
20c9e0aae8
lc: add initial version of Constraints check rules, part of subsumption. Add partial recover rules. Other minor changes.
...
Also a fix to typeOf_PrototypeImpl rule, and a fix to instTypeVars: needed to copy Constraint sets.
2019-01-28 11:38:33 +03:00
Fedor Isakov
37b6afa642
Enable back working tests in lambdacalc
2019-01-26 14:15:30 +01:00
Fedor Isakov
f3c2f53fa6
Temporarily disable failing tests in lambdacalc sample
2019-01-25 15:02:26 +01:00
Fedor Isakov
fc1fcaaf9d
Cleanup a test: better layout of nested lists.
2019-01-21 11:20:30 +01:00
grigorii.kirgizov
5d5a102661
lc: minor: move Cons-list utils to its own handler
2019-01-16 18:19:11 +03:00
grigorii.kirgizov
87cdde5309
lc: 2 fixes for previous commit: walkaround in rules with 'deep' pattern-matching in heads; produce empty typeConstraints on user annos (in types)
2019-01-16 18:16:11 +03:00
grigorii.kirgizov
06623693bf
lc: add rules for Proto & ProtoImpl; modify inst and gen for Constraints in forall; move typeConstraints rule
...
Rule for PrototypeImpl is the heaviest.
Also, it seems that constraint field in Forall DataForm isn't needed.
2019-01-16 17:48:34 +03:00
grigorii.kirgizov
bd8e0ab00c
lc: add handling of Typeclass and Instance clauses, add macro for Constraint collection, add Set for this
2019-01-16 13:27:56 +03:00
grigorii.kirgizov
b0e5edb03a
lc: remove getType rule and translate type annotations to dataforms in macro; also minor changes
2019-01-16 11:48:09 +03:00
grigorii.kirgizov
94659549bc
lc: fix failing test: fix usages of eq rule in subsumption
2019-01-16 11:14:41 +03:00
Fedor Isakov
7f7f290b01
Temporarily comment out two instances of let clause that produced errors in tests
2019-01-13 17:53:06 +01:00
Fedor Isakov
dce532c5c7
Apply automatic migrations in lambdalc project
2019-01-13 17:53:01 +01:00
Fedor Isakov
275070c786
Apply automatic migrations to mpscore subproject
2019-01-13 14:27:38 +01:00
Fedor Isakov
08bed0c578
Apply automatic migrations to FitchProof subproject
2019-01-13 14:27:32 +01:00
grigorii.kirgizov
ce34b598c2
lc: minor: add simple Typeclass examples (it's only structure/editor/scopes example); add one test case to DemoScopes
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
c8233c24d7
lc: move to fully nameless representation of type vars; assign names only in recover
...
It is also a necessary step to bidirectional typechecking and can simplify things in other places
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
eb80329a54
lc: change recover_varRef rule, propagate to recover_Var rule instead of duplicating it
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
fb4fe40973
lc: typeclasses: added structure, editor, constraints (mainly concerned with scoping) aspects
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
cf855fc19b
lc: add test case for correct handling of instantiation scopes in forall. fails now.
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
2cc804079a
lc: add test case in DemoScopes for isomorphism between similar forall type
...
It checks that subsumtion relation is actually a richer 'dsk' relation
from Peyton Jones et al. 2007
2019-01-11 19:09:44 +03:00
grigorii.kirgizov
61e282da6c
lc: minor: remove few commented lines, add few comments; add space between typevars in ForallType editor
2019-01-11 19:09:44 +03:00
Fedor Isakov
134fbb5cdb
Add missing dependency to lambdacalc test model
2019-01-09 14:48:21 +01:00
Fedor Isakov
f226bea8c2
Minor fixes in the BL typechecking templates. Insert manual new lines in the test structures for better visualization.
2019-01-09 13:01:37 +01:00
grigorii.kirgizov
4eab15c0a3
lc: add DemoScopes test case, fix one test example; reverse displayed order of user-supplied type annotations
2019-01-09 12:49:34 +03:00
grigorii.kirgizov
583358dc25
lc: modify name assignment to variables in 'forall'
2019-01-09 11:54:27 +03:00
grigorii.kirgizov
9180f16c25
lc: minor: uncomment typeOf_AnnVarRef rule (not fully tested yet), add dummy test rule
2019-01-09 11:18:20 +03:00
grigorii.kirgizov
8da1f51434
lc: move some examples, add error annotations in DemoScopes and test case for annotations
2019-01-09 11:18:20 +03:00
grigorii.kirgizov
1de24dd83c
lc: minor: editor enhancements
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
47130f794d
lc: add proper type var scopes for AnnExpr
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
b727b375ba
lc: disallow nested annotations on variables definitions
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
c407e29ec4
lc: some refactorings nothing special
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
682ed5b90b
lc: refine subsumption rel; add examples in DemoScope; editor enhancements (amend commit)
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
24ce9e73aa
lc: refine subsumption rel; add examples in DemoScope; editor enhancements
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
7f02d10b62
Add expr annotations; add examples
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
440fcf868a
Intermediate commit: add VarType DF with editor; partial work on subsumed relation
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
2fa00cac72
Minor: move annotation rules to its own handler
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
06baa99da8
Add Var term; use it instead of free var-s in forall for subst.
...
Still not finished: can't pass Var name (see forall, freeTypeVars_isFree).
Also add subsumption relation for annotations.
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
58a518af4f
Partially working forall quantified types
...
Substitution (i.e. forall instantiation) doesn't work in this version.
2019-01-09 11:17:42 +03:00
grigorii.kirgizov
084c4581f0
Bounded type vars: add free type var collection (in typeOf), gen, inst, list utils
2019-01-09 11:17:42 +03:00