Patch applied to the locate query: when used to retrieve the first inductive
type of a mutual inductive types block, the returned URI is now the URI of
the type (with the fragment identifier!) and not the one of the block (without).
The parser (the lexer indeed) now use the locate query to locate an object
whose identifier is unknown. In ambigous cases, no choice is given to the
user and the usual exception (identifier not found) is raised. It works
only for constants and for the first inductive type of a mutual inductive
type block.
Irene Schena [Wed, 28 Aug 2002 14:57:52 +0000 (14:57 +0000)]
Modified Files:
1)core_grammar.txt grammar.txt query.xml xmathql.dtd: new version
----------------------------------------------------------------------
Many improvements in tactics (and tactical) representation:
1) tactics are no more functions from state to state, but functions from
proof * goal to proof * goal list where the goal list is the list of
new goals generated
2) proof and goal are no more optional
3) all the tactics have been slightly changed so that their type is now
param1 -> ... -> paramn -> ProofEngineTypes.tactic
4) the tactical thens has been implemented
Other changes:
1) more .mli committed
2) comments and copyright notices added where missing
mathQL modified, stderr corrected to stdout im mathql_interpreter,
new lavel assignment procedure in mQueryGenerator (uses degrees),
textual interface for mQueryGenerator added
Locate query changed again. There is a mismatch between Domenico's
implementation and Ferruccio's semantics. The code now conforms to
Domenico's implementation and seems to work.
Conversion rules are now correctly handled also for atoms.
The only residual problem is that some proofs + side-proofs
where the proof is an atom with different inner-types are
rendered as a proof with two sub-proofs which is innatural.
* syntax error fixed
* IT DOESN'T COMPILE!!!
It must still be ported to the new Meta. I don't do it yet because
this module should disappear when the new exportation module will be
available.
* Abst removed from the DTD
* real double-type-inference algorithm implemented
* performance improved again (25s for limit_mul). Why???
* Bug left: the double-type annotation is not generated in the case
of a lambda inside another lambda. To be fixed soon.
New: expected types (in the sense of Yann Coscoy) now availables for
MathML Content and MathML Presentation. HTML support is still missing
(and bugs may have been introduced when expected types are present)
* doubleTypeInference.ml* added. For now, it just computes the synthesized type.
The expected type is expected soon ;-)
* great performance improvement. For example, the rendering of limit_plus
is now "only" 30s (was 50s)
pgocaml ==> postgres
Note: a debian package is now available on Zack debian repository
In case you don't use the debian package and postgres is not found, just
make a symbol link from postgres to pgocaml.
* Bug fixed: syntactic equality for CIC term (which was used in the Fold tactic)
is not the structural equality of Ocaml (i.e. '=') because of cooking
numbers that can differ denoting the very same term. So a new function
syntactic_equality has been added to proofEngineReduction.ml and it is now
used for Fold.
* The "backward" query has been refined considering head position as a different
level w.r.t. non-head positions.
* The "backward" query has been refined using the new Subset construct.
* New operators (Subset, SetEqual and RVarOccurrence) added to MathQL
* New implementation of all the operations. We will have to choose if this
new implementation is better or worst than the previous one.
* Diff and SortBy not implemented yet.
* Clear and ClearBody implemented, but they are bugged because they do not
restrict the metavariables that used the cleared hypothesis.
* Reduction tactics in the hypotheses were bugged. This version is still
bugged, but it works a bit better.