PARTIAL COMMIT:
The whole logic of the guarded_by_constructors is being changed.
The new idea is this one:
1) The guarded_by_constructors is applied to a term t which must always
generate an inhabitant of an inductive data type or of a co-inductive
data type.
2) When it find a constructor in head position, then the constructor
must construct the inductive or co-inductive data type of 1).
3) The type of the formal parameter of a constructor determines what
condition is checked on the actual parameters of the constructors:
a) Not recursive: the function must not occur in the actual parameter
b) Simply recursive (to be defined): the function must occur in the
actual parameter only guarded by constructors (where the constructor
has already been found).
c) Imbricated (i.e. it is another inductive type applied to the one
that is going to be recursively defined): in this case the guarded
by constructors (where the constructor has already been found) must
be called, but:
I) the expected inductive data type is no more the old one, but
the one of the inductive data type that is in head position in
the type.
II) Once (if) one constructor of I) will be found, its type must
be considered only after the substitution of the left (?)
parameters and considering recursion IN THE CO-INDUCTIVE TYPE
THAT IS THE OUTPUT TYPE OF THE WHOLE COFIX.
What is still wrong with this commit is that we don't have the notion of
imbricated argument yet. So, as soon as an imbricated argument is found,
the invariant 1-3 are broken and sooner or later an exception is raised
or false is returned.
Irene Schena [Mon, 10 Dec 2001 16:28:04 +0000 (16:28 +0000)]
----------------------------------------------------------------------
Modified Files:
1) schema-h.rdf, schema-hth.rdf: updated DC schemas + class and
property refinements + value types.
----------------------------------------------------------------------
Bug partially fixed: the branch of a case of type Prod can be not a Lambda.
(e.g. a Rel, a MutConstruct, etc.) I have fixed only the two cases of a
Rel and a MutConstruct.
The definition of small inductive types has been relaxed: a constructor
is now considered small when its type without the parameters was small
with the previous definition. This is consistent with Coq's behaviour.
* Code improvement: there were two different functions both named eat_prods.
One has been renamed drop_prods.
* Bug fix: decast was still too weak. Replaced by CicReduction.whd everywhere.
Irene Schena [Mon, 3 Dec 2001 16:17:59 +0000 (16:17 +0000)]
----------------------------------------------------------------------
Added Files:
1) schema-h.rdf, schema-hth.rdf: first draft of rdf schemas for objects
and theories
----------------------------------------------------------------------
New implementation of the proof-checker daemon: there is now
only one sequential (= non concurrent) proof-checker that process
one request at a time. The next big step will be to make it re-entrant.
A .cmo file inside a .cma is linked iff it is referenced at least once.
This was not the case for cicCooking, that simply worked using side-effects
(i.e. registering one function of him to cicEnvironment).
So, I have created a new init function to initialize the wall proof-checker.
META files are now automatically generated from META-*.src files.
In this way all the hard-coded file paths have been removed.
Installation and uninstallation (still not implemented) should be also
easier.
Moreover, an error in a sub-directory now stops the whole processing.
Debianize.helm stuff.
Now you can check out a cvs revision and obtain a *clean* debianized source
tree executing "debian/debianize.helm".
Moreover the generated debian packages are native debian packages.
BUG FIXED:
An maction with only one child does not have the same semantic
of an mrow. E.g.: when I click to un-expand a node, the first enclosing
maction is the one I am acting on. If it has only one child, nothing
happens. So, if an maction with only one child is put inside an maction with
two children, the inner one stops any possibility to unexpand the outer one.
- modified /getxslt method, now stylesheets are downloaded on the fly
and may be kept on various servers
- uncommented /getdtd method
- removed /getstyleconf method
- changed semantics of dbm variables, now ".db" suffix must be present
in environment variables that reference dbm files