Enrico Tassi [Mon, 15 Dec 2008 13:12:28 +0000 (13:12 +0000)]
aded some whd, you should be able to declare something like:
inductive A : FOO :=
where FOO is defined as a sort (or unfolds to somthing ending with a sort)
The library is no longer automatically used during disambiguation.
It is used only when the user press the More button or when he selects
the library from the Debug (?????) menu!
Moreover, using the library or not using it has now a different behaviour:
1. when the library is NOT used, symbols with no preferences are no
longer automatically looked for in the library
2. when the library IS used, only passes 5 and 6 are tried.
CONS:
1. the Debug menu voice is now necessary: move it elsewhere? always open the
disambiguation window making it non-modal? put an hyperlink in the error
message window?
2. when the library is used, all previous preferences are completely ignored
for all symbols. This makes the system much more stupid than what it used
to be.
PROS:
disambiguation is now much faster in case of error
1. new expressions AND, OR, XOR
2. constants must be initialized
3. bug fixed: the size n of an array means that the array
has (n+1) elements. Thus the last valid index is n.
Enrico Tassi [Fri, 12 Dec 2008 12:08:16 +0000 (12:08 +0000)]
better error message, functions to clear various caches used during translation of old2new cic, logger functions implemented inside the typechecker so that
uncommenting one line makes the type checker more verbose when recursively typing stuff
Enrico Tassi [Fri, 12 Dec 2008 11:43:39 +0000 (11:43 +0000)]
pattern matching over Ast.Case simplified:
- it is not possible to match the `in intype` foo part
- it is not possible to match the outtype
eta expansion still done on Ast (hard to do it in Cic. The abstracted variable
does not have a type :-( thus you may have to double your notations. Name for fresh variables changed to \etaX instead of freshX (much shorter in terms of screen pixels)
Enrico Tassi [Tue, 9 Dec 2008 18:29:37 +0000 (18:29 +0000)]
raise uncertain when a sort is not a sort but may be, use max for mixing universes, coercions to sort in the prod case are triggered before putting the source type in the context
Enrico Tassi [Sat, 6 Dec 2008 18:12:03 +0000 (18:12 +0000)]
new concept of virtuals, defined only in the gui that behave as the old (still
present and used) ut8tables and ligatures mapping \foo or => to unicode symbols.
support in the gui for utomatical sumstitution of a virtual with its utf8
counterpart (disabled now, grep for if false && str = " ").
support for uf8 equivalnce classes, names simalrsymbols, activated by alt-l.
alt-l is now overloaded, can expand a \foo or => to a unicode symbol
and cycle on unicode symbols in the same eq class of the one just before the
cursor.
classes are already defined for letters mapping them to variants (other
alfabets and fonts) and on arrows and <.
Enrico Tassi [Thu, 4 Dec 2008 19:36:50 +0000 (19:36 +0000)]
Fixes:
- new letin interpretation in nCicDisambiguation fixed to not swap arguments
- new refiner raises good exception in case a sort in not such
- reference raise good exception instead of assert false
Improvements:
- new disambiguation attached
- constructor -> indty function in reference
The aliases and multi_aliases in the lexicon status are now
LexiconAst.alias_spec (they used to be DisambiguateTypes.codomain_item).
Benefit: it is now possible to use the very same set of aliases both for the
new and old terms. Moreover, this commits simplifies quite a bit of code.
Known bugs: when clicking the "OK" button in the error message disambiguation
window, an assertion is often raised. When the assertion is not raised, the
set of aliases that are printed are not syntactically/semantically correct.