]>
matita.cs.unibo.it Git - helm.git/log
Claudio Sacerdoti Coen [Tue, 15 Apr 2008 20:10:44 +0000 (20:10 +0000)]
1. bug fixed: the context must be type-checked before using it in type_of_aux'.
Otherwise get_cooked_obj raises Not_found in Deannotate
2. big improvement in guarded_by_destructors: when a fix applied to a safe
argument is found in the body of another fix, the body of the inner fix
is check adding the recusrive formal parameter as an additional safe
argument.
Enrico Tassi [Tue, 15 Apr 2008 13:44:16 +0000 (13:44 +0000)]
get_checked_fix -> get_checked_fixes
Enrico Tassi [Tue, 15 Apr 2008 13:42:39 +0000 (13:42 +0000)]
added comment
Claudio Sacerdoti Coen [Tue, 15 Apr 2008 10:47:29 +0000 (10:47 +0000)]
added sample of guarded by in which coq is stronger
Enrico Tassi [Tue, 15 Apr 2008 08:53:01 +0000 (08:53 +0000)]
positivity check fixed, a MutInd not applied (but with an exp-named-subst)
was considere non strictly positive always
Enrico Tassi [Tue, 15 Apr 2008 08:20:24 +0000 (08:20 +0000)]
do not use an implicit but a sort as a neutral term for positivity check
Enrico Tassi [Mon, 14 Apr 2008 14:59:12 +0000 (14:59 +0000)]
objects are typechecked to ensure there is a graph before doing all the stuff... read: much more memory is required
Enrico Tassi [Mon, 14 Apr 2008 14:48:14 +0000 (14:48 +0000)]
leftno should be increased of the expnamedsubst, but counting only the uris of vars without a body
Enrico Tassi [Mon, 14 Apr 2008 14:47:15 +0000 (14:47 +0000)]
better error message
Enrico Tassi [Mon, 14 Apr 2008 13:21:15 +0000 (13:21 +0000)]
same_obj made more precise, fixed the order of the context for fixpoints body,
cache of fix extended to the mutual case (properly)
Enrico Tassi [Mon, 14 Apr 2008 10:22:14 +0000 (10:22 +0000)]
ficed fixpoint cache usage for mutual fix
Enrico Tassi [Mon, 14 Apr 2008 10:21:33 +0000 (10:21 +0000)]
fixed positivity conditions
Enrico Tassi [Mon, 14 Apr 2008 10:20:39 +0000 (10:20 +0000)]
added mk_fix i j r that given an r of a fix generated another fix on i and j
Enrico Tassi [Mon, 14 Apr 2008 09:58:24 +0000 (09:58 +0000)]
positivity condition was relying on the name declared in abstractions, and
was checking for a dependent product calling does not occurr with a wrong
index
Enrico Tassi [Mon, 14 Apr 2008 09:00:52 +0000 (09:00 +0000)]
added little optimization to not add twice the same arc
Enrico Tassi [Fri, 11 Apr 2008 16:45:29 +0000 (16:45 +0000)]
quinck and untested implementation of positivity conditions check
Enrico Tassi [Fri, 11 Apr 2008 15:25:15 +0000 (15:25 +0000)]
...
Enrico Tassi [Fri, 11 Apr 2008 15:20:27 +0000 (15:20 +0000)]
added depndency of new kernel to metadata to allow to use the DB to calculate the minimum set of graphs to load
Enrico Tassi [Fri, 11 Apr 2008 15:19:31 +0000 (15:19 +0000)]
FIXED bug, added assertion in case a universe inside a term T living at URI u
was marked with URI v <> u. Unshare.fresh_types should be called!
added a function to linearize a given graph, imperative interface since
is is used only in the new kernel.
Enrico Tassi [Fri, 11 Apr 2008 15:16:33 +0000 (15:16 +0000)]
added function to fresh types
Enrico Tassi [Fri, 11 Apr 2008 15:15:46 +0000 (15:15 +0000)]
call Unshare.fresh_types
Enrico Tassi [Fri, 11 Apr 2008 15:15:21 +0000 (15:15 +0000)]
load the graph of objects that depend on the ones requested,
rank universes and use them in the transformation to obtain terms
with TypeK and not always Type0
Enrico Tassi [Fri, 11 Apr 2008 15:13:47 +0000 (15:13 +0000)]
use universe rank instead of Type0
Enrico Tassi [Fri, 11 Apr 2008 15:13:09 +0000 (15:13 +0000)]
Type related failures fixed
Enrico Tassi [Fri, 11 Apr 2008 15:12:30 +0000 (15:12 +0000)]
better pp of objects
Claudio Sacerdoti Coen [Fri, 11 Apr 2008 13:09:02 +0000 (13:09 +0000)]
Extracted code. The main executable is medium_tests that runs the emulator on
a few assembly programs with inputs of different sizes:
* string reverse
* counting sort
* perfect numbers
Enrico Tassi [Fri, 11 Apr 2008 13:07:54 +0000 (13:07 +0000)]
removed useless file
Enrico Tassi [Fri, 11 Apr 2008 11:40:49 +0000 (11:40 +0000)]
fixed modules order
Enrico Tassi [Fri, 11 Apr 2008 11:10:12 +0000 (11:10 +0000)]
more fix removed from types
Enrico Tassi [Fri, 11 Apr 2008 11:01:53 +0000 (11:01 +0000)]
more fix removed from types in proofs
Enrico Tassi [Fri, 11 Apr 2008 10:33:49 +0000 (10:33 +0000)]
when we build the elimination principle we fresh universes to not
generate tems with different
Enrico Tassi [Fri, 11 Apr 2008 10:21:45 +0000 (10:21 +0000)]
added a parameter to unshare universes
Enrico Tassi [Fri, 11 Apr 2008 10:20:34 +0000 (10:20 +0000)]
Conversion of 2 lambdas was not requiring equality on universes of the source type, while the conversion of products was requiring so.
Moreover Coq seems to force that constraint too.
Enrico Tassi [Fri, 11 Apr 2008 10:16:56 +0000 (10:16 +0000)]
context of types built in the reverse order
Enrico Tassi [Fri, 11 Apr 2008 10:16:00 +0000 (10:16 +0000)]
added a simplify to prevent the generation of an ugly fix
Enrico Tassi [Fri, 11 Apr 2008 08:16:23 +0000 (08:16 +0000)]
implemented inductive and less parentheses
Claudio Sacerdoti Coen [Thu, 10 Apr 2008 18:19:16 +0000 (18:19 +0000)]
The cache of objects is now used also for cofixpoints.
Claudio Sacerdoti Coen [Thu, 10 Apr 2008 18:14:47 +0000 (18:14 +0000)]
New: cache of translated fixpoints (to avoid the generative fix restriction and
to avoid pollution of the environment). Many more Matita objects now pass.
TODO: the caching machinery should be debugged and better understood (what about
metasenv and subst?)
Claudio Sacerdoti Coen [Thu, 10 Apr 2008 18:09:01 +0000 (18:09 +0000)]
does_not_occur exported to be used in oCic2NCic
Claudio Sacerdoti Coen [Wed, 9 Apr 2008 15:59:57 +0000 (15:59 +0000)]
Bug fixed: references to CoFix are CoFix, not Fix.
Enrico Tassi [Wed, 9 Apr 2008 15:24:54 +0000 (15:24 +0000)]
print unnamed variables as __n
Enrico Tassi [Wed, 9 Apr 2008 15:22:03 +0000 (15:22 +0000)]
switch off profilers
Enrico Tassi [Wed, 9 Apr 2008 15:13:59 +0000 (15:13 +0000)]
pp with parenthesis only when necessary and with some more boxes
Claudio Sacerdoti Coen [Wed, 9 Apr 2008 14:58:35 +0000 (14:58 +0000)]
...
Claudio Sacerdoti Coen [Wed, 9 Apr 2008 14:57:34 +0000 (14:57 +0000)]
Fixed serious bug that occurred only in the following situation:
\lambda x.
Fix f {
\lambda y: P x.
Fix g {
The two fixes must be translated as
Fix f { \lambda x. \lambda y: P x. ...}
Fix g { \lambda x. \lambda f. \lambda y: P x. ... }
In the first case, the x that occurs in the type of y must be a Rel 1.
In the second case, the x that occurs in the type of y must be a Rel 2.
The previous code translated both of them to Rel 1.
Enrico Tassi [Wed, 9 Apr 2008 14:57:13 +0000 (14:57 +0000)]
better pp in Appl
Enrico Tassi [Wed, 9 Apr 2008 14:55:30 +0000 (14:55 +0000)]
better pp
Enrico Tassi [Wed, 9 Apr 2008 14:37:56 +0000 (14:37 +0000)]
pretty printer on steroids
Claudio Sacerdoti Coen [Wed, 9 Apr 2008 12:20:22 +0000 (12:20 +0000)]
Added some "\n" here and there to the pretty-printing of Match.
Claudio Sacerdoti Coen [Wed, 9 Apr 2008 12:19:06 +0000 (12:19 +0000)]
Grave bug fixed: Ce that point to definitions were handled as those that point
to declarations. So Fix-constants were too much abstracted, too much applied,
etc.
Enrico Tassi [Wed, 9 Apr 2008 12:04:09 +0000 (12:04 +0000)]
added profiling on/off
Enrico Tassi [Wed, 9 Apr 2008 12:03:34 +0000 (12:03 +0000)]
invalidate fixed
Enrico Tassi [Wed, 9 Apr 2008 11:59:49 +0000 (11:59 +0000)]
allow to switch profiling on and off on the fly
Enrico Tassi [Wed, 9 Apr 2008 11:58:33 +0000 (11:58 +0000)]
removed two useless calls to the environment, one still to be optimized out
Enrico Tassi [Wed, 9 Apr 2008 08:47:07 +0000 (08:47 +0000)]
...
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 22:00:51 +0000 (22:00 +0000)]
Variables are no longer experted (cooking is now implemented).
Better reporting with indentation.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 21:49:50 +0000 (21:49 +0000)]
Swapped arguments in error message.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 21:31:13 +0000 (21:31 +0000)]
Variables having a body can occur in cooked terms and must be delta-expanded
during translation to the new CIC format.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 21:18:03 +0000 (21:18 +0000)]
Fix over the previous one: Var-LetIn abstractions should be ignored and not
transformed into applications at all.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 21:13:18 +0000 (21:13 +0000)]
Error message improved.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 20:57:30 +0000 (20:57 +0000)]
Cooking w.r.t. variables with bodies is now implemented as delta-expansion.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 17:51:10 +0000 (17:51 +0000)]
Fix name capture in cofix.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 17:50:32 +0000 (17:50 +0000)]
To test the translation.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 17:27:41 +0000 (17:27 +0000)]
Name capture fixed.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 17:22:19 +0000 (17:22 +0000)]
Improved error messages in place of "sort elimination not allowed".
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 17:03:35 +0000 (17:03 +0000)]
Seed reset before each convert_obj.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 17:02:04 +0000 (17:02 +0000)]
Use seed to avoid further name clashes.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 16:59:26 +0000 (16:59 +0000)]
...
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 16:45:16 +0000 (16:45 +0000)]
Incredible, but true! Our name mangling clashed with one identifier in the
library of Coq, generating two functions that mutually called each other,
making the type-checker diverge!!!!
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 16:37:16 +0000 (16:37 +0000)]
Cooked objects are no longer well typed in the uncooked old environment.
Thus we need to fix_outtype before cooking.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 16:10:40 +0000 (16:10 +0000)]
Improved eat_prods error message (at the cost of passing the 6th argument!)
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 15:56:31 +0000 (15:56 +0000)]
The old kernel does not accept ens whose order is different from the one
declared for the object whose reference it is applied to. Fixed.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 15:25:46 +0000 (15:25 +0000)]
Bad alpha-conversion by Enrico fixed.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 15:18:33 +0000 (15:18 +0000)]
Bug fixed: the ens need not be ordered w.r.t. the declared variables.
The latter order is the right one for abstraction.
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 14:54:14 +0000 (14:54 +0000)]
j off by one in error message
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 14:47:56 +0000 (14:47 +0000)]
fix_outty partially fixed: missing lifts in args and ens
Claudio Sacerdoti Coen [Tue, 8 Apr 2008 14:38:48 +0000 (14:38 +0000)]
fix_outty fixed in order to perform eta-expansion when the term is not
a sequence of lambdas.
Enrico Tassi [Tue, 8 Apr 2008 09:11:33 +0000 (09:11 +0000)]
added simplify to avoid ugly proofterm
Claudio Sacerdoti Coen [Mon, 7 Apr 2008 23:16:36 +0000 (23:16 +0000)]
Tentative (and bad!) fix of outtypes in non-dependent eliminations.
The fix does not work since there is no guarantee in Coq that the outtype
is made of a sequence of Lambdas (and indeed it is not for automatically
generated elimiantion principles). Thus I need to perform recursion on the
type of the outtype and I also need to perform some eta-expansion to insert
the additional lambda in the right position :-(
Claudio Sacerdoti Coen [Mon, 7 Apr 2008 22:09:02 +0000 (22:09 +0000)]
Cooking discriminated into cooking in types (using Prods) and cooking in bodies
(using Lambdas).
Claudio Sacerdoti Coen [Mon, 7 Apr 2008 22:04:17 +0000 (22:04 +0000)]
Pretty-printing of definitions fixed.
Claudio Sacerdoti Coen [Mon, 7 Apr 2008 22:00:51 +0000 (22:00 +0000)]
Cooking implemented (not tested yet).
Claudio Sacerdoti Coen [Mon, 7 Apr 2008 21:27:48 +0000 (21:27 +0000)]
Reports improved.
Claudio Sacerdoti Coen [Mon, 7 Apr 2008 21:05:13 +0000 (21:05 +0000)]
Debugging code fixed.
Enrico Tassi [Mon, 7 Apr 2008 16:30:11 +0000 (16:30 +0000)]
added invalidate to clear the cache and ease the comparison with the new kernel
Enrico Tassi [Mon, 7 Apr 2008 16:19:11 +0000 (16:19 +0000)]
commented out uris of objs that do not compile properly
Enrico Tassi [Mon, 7 Apr 2008 16:18:52 +0000 (16:18 +0000)]
added comparison with old kernel
Enrico Tassi [Mon, 7 Apr 2008 16:18:22 +0000 (16:18 +0000)]
fixed error message for eat prods
Enrico Tassi [Mon, 7 Apr 2008 16:17:57 +0000 (16:17 +0000)]
invalidate
Enrico Tassi [Mon, 7 Apr 2008 16:17:16 +0000 (16:17 +0000)]
uris relative to axioms are translated in the right way
Enrico Tassi [Mon, 7 Apr 2008 16:16:19 +0000 (16:16 +0000)]
added invalidate
Enrico Tassi [Mon, 7 Apr 2008 15:01:32 +0000 (15:01 +0000)]
added preliminary checks for indtys
typecheck the explicit type of letins
Enrico Tassi [Mon, 7 Apr 2008 15:00:23 +0000 (15:00 +0000)]
call get_obj instead of get_cooked_obj ~trust:false
Enrico Tassi [Mon, 7 Apr 2008 14:59:43 +0000 (14:59 +0000)]
added case of const and axiom
Enrico Tassi [Mon, 7 Apr 2008 14:59:04 +0000 (14:59 +0000)]
added # to comment
Enrico Tassi [Mon, 7 Apr 2008 14:58:39 +0000 (14:58 +0000)]
better printings
Enrico Tassi [Mon, 7 Apr 2008 14:31:03 +0000 (14:31 +0000)]
the explicit type in a LetIn must be typecheckd before convertibility is checked
Enrico Tassi [Mon, 7 Apr 2008 12:16:04 +0000 (12:16 +0000)]
opt compilation enabled, removed some pps, check has -alluris to regenerate
the uri list, alluri sorted such that the last fpart of the file fails (but not the former).
all nat/ compiles!
Enrico Tassi [Mon, 7 Apr 2008 11:57:33 +0000 (11:57 +0000)]
lefts_ad_tys properly sorted, added some metasenv here and there,
recursive args defined in case of appl
Enrico Tassi [Mon, 7 Apr 2008 11:55:43 +0000 (11:55 +0000)]
lefts_and_tys was tys@lefts, CSC claims it was working since that context is only used
by whd and it did not contain any definitions by contructions, thus the length was the only important bit