put_inductive_definition implemented and exposed.
It is a very UNSAFE solution to the problem of computing inner-types of
non-debrujined mutual inductive types (whose constructors referes to
the not-yet-defined inductive type block): you can use this function to
add the block to the environment; then you compute the inner-types; and
finally you save the object and register it to the getter.
typecheck_mutual_inductive_defs exposed.
It is used to type-check and inductive definition which has no URI associated
to it (i.e. it is not managed by the getter; e.g. when it is not saved yet
since we do not know if it is well-typed).
Michele Galatà [Tue, 3 Dec 2002 11:02:33 +0000 (11:02 +0000)]
Added new tactics: Exists, Split, Assumption, Absurd, Generalize (doesn't work)
Moved ElimType from ring.ml to variousTactics.ml
Moved Contradiction from fourierR.ml to variousTactics.ml
First implementation of the new generalized SearchPattern on the whole
type (not only the conclusion). Despite the file name, no levels have
been implemented so far.
Brand new implementation based on functors taking a strategy in input.
Several different strategies have been implemented. Unfortunately many
of them are incomparable and there are critical examples where only some
of them terminate in reasonable time.
Removing the functor/module stuff does not bring any sensible performance
improvement even for simple strategies (where most of the functions are
just identity fuctions that can be inlined when not crossing functor
boundaries).
Enrico Tassi [Sun, 1 Dec 2002 20:37:14 +0000 (20:37 +0000)]
- now esempi/fourier/ is he dir for all fourier extras
- fourier.cic some tests
- fourier_benchmarks.cic some test computionally interesting
- fourier_make_benchmarks.ml a simple tool to generate big systems of
inequations
lazily ==> call_by_name (since it is really a call_by_name!)
The default is now false (i.e. call_by_value strategy) to make an example
of Fourier application type-check in 8s instead of 1h40m!!!
We also tried a call_by_need strategy (not committed).
The results obtained are so far equivalent to the call_by_value strategy
(that is why we did not commit the code).
* The new query language (now broken) works only on the new DB
helm_mowgli_new_schema.
* InConclusion, InHypothesis and so on are now inserted in the DB with their
namespace.
- catch processing exception which are now reported embedded in html responses
- catch parameter exception which are now reported as bad request responses
- changed default port from 48085 to 58085
- disabled http debugging
WARNING!!!
From now on the V7_3_new_exportation branches of ocaml/mathql and
ocaml/mathql_interpreter are DEPRECATED!!! You must switch back to
the main branch.
Code clean-up: the widget in the lower-left corner is now a widget to input
CIC terms, featuring the following methods:
* get_term
* set_term (issue: what should be its type? So far the input is a string)
* reset
Inteface improvement: the "Edit Aliases..." menu entry now opens a window where
aliases may be entered and modified. I am now going to remove aliases
declaration from the CIC textual parser.
Interface improvement:
- the pages of every notebook are now generated with lazy code
- the interface to choose between several interpretations is now really nice
The fold tactic of proofEngine now uses ReductionTactics.fold_tac.
A parameter was added to choose if the reduction must be performed also
in the hypotheses.
New CicTextualParser: it now returns (approximately) a couple
list of free names * function from an interpretation to a Cic term
where an interpretation is a function from string (ids) to uris.
- ElimIntrosSimpl now implemented using tacticals. It becomes an
ElimSimplIntros (which does lambda-abstraction with the reduced type ;-(((
To be fixed.
- reductionTactics now also have the usual interface for tactics
- (Partial) porting to the new theory with explicit named substitutions
- Porting to the new DTD
- Porting to the new query language and to its implementation
- searchPattern implemented: it performs an old "backward" query and then
tries to apply every result to filter out false matches
Open bugs:
- ElimIntrosSimpl, Fourier and Ring still to be ported
- many, many, many others