Serious bug fixed: a variable was captured during unfolding of Fix, resulting
in the context of the return type of mutually recursive definitions being
lifted for each function but the first one!
Several instances of the same bug fixed at once: when processing a Fix,
before adding the types to the context (to process the bodies), the types
must be lifted. The simplify tactic is still not working propertly.
Ferruccio Guidi [Fri, 16 Mar 2007 18:39:27 +0000 (18:39 +0000)]
elim tactic: it needs two arguments, a term as well as a pattern
CicReduction: head_beta_reduce now can take the number of beta-redexes to reduce
Procedural: refactoring
Ferruccio Guidi [Tue, 13 Mar 2007 13:21:56 +0000 (13:21 +0000)]
elim tactic: now takes a pattern instead of just a term
works as before for now. the pattern wil be activated soon
Procedural: cleaning up
ProofEngineReduction: new subst_inv function exactly inverts subst
Ferruccio Guidi [Thu, 1 Mar 2007 19:00:14 +0000 (19:00 +0000)]
Procedural: some improvements
rewrite tactic: bug fix in hyps searching
TermContentPres: one space added in let-in rendering
prova.ma: new procedural proof of ty3_gen_cast
Ferruccio Guidi [Wed, 21 Feb 2007 14:15:55 +0000 (14:15 +0000)]
procedural : some improvements.
decompose tactic: user provided premise and types removed.
The decomposable types are now the non-recursive inductive
types without right parameters and are auto-detected
Ferruccio Guidi [Wed, 14 Feb 2007 17:10:16 +0000 (17:10 +0000)]
Procedural : some improvements
PrimitiveTactics : tentative implementation of using clause in elim
CicNotationParser: noe declarations of the form (_:t) are parsable
Added toggle for enabling/disabling the conversion from multibyte unicode
characters to TeX when converting CIC terms to textual formulae. The toggle is
under the Edit menu (rational: it's near the paste commands, maybe it should be
added to the GtkSourceView contextual menu too). The toggle governs the
matita.paste_unicode_as_tex boolean registry value. The txt_of_* rendering
functions have been changed to accept a new optional boolean parameter.
* 'default "equality"' command changed to consider also
eq_rec, eq_rec_r, eq_rect, eq_rect_r
* rewrite tactic changed to rewrite also in goals of type Set and Type
* more progress in technicalities/setoids.ma
Important commit:
from now on the pretty printer CicMetaSubst.ppterm_in_context is substituted
with a reference to an high level pretty-printer (now defined in
matita/applyTransformation.ml). In the debug menu there is a switch to turn
it off and get back the old pretty-printer.
Ferruccio Guidi [Tue, 6 Feb 2007 19:36:05 +0000 (19:36 +0000)]
- Procedural: moved in a directory on its own
- ApplyTransofrmation: now handles inline macro expansion
- GrafiteParser MatitaEngine MatitacLib: added a callback in each
- tests/letrecand.ma: changed baseuri
Serious bug fixed: the types of a real mutual fix definition were not lifted
as required. Moreover, an unification exception used to escape the refiner.
Now it does no more, but the error is not localized (being about the branch
of a MutCase that has no precise localization).
Enrico Tassi [Thu, 1 Feb 2007 14:48:05 +0000 (14:48 +0000)]
reverted a commented substitution in build_newgoal, added an euristic to
order the lambdas of a proof abstracted in a letin such that dependency betwwen the types of the lambdas is inferrable by the refiner
Ferruccio Guidi [Wed, 31 Jan 2007 19:54:01 +0000 (19:54 +0000)]
methods eos, goto, advance and retract now catch Invalid_argument "Array.make"
that is raised when the script is too big to be handled (this makes quit work!)
Several bugs fixed:
1. mutual definitions were not generated correctly
(e.g. let rec even ... and odd in even actually resulted in a
definition of odd!)
2. a top-level mutual definition now generates two constants (as it
should have always been)
Behaviour of CicRefine.type_of_aux' on MutCases changed: branches are now
processed from right to left to make the cases tactic open goals in the
expected order.
Some changes:
1. error messages are now in HTML (they used to be in plain text + vt100 colour
scheme)
2. commands are now expected to be in a fragment of the pgip protocol.
Supported commands are:
<pgip><doitem>...</doitem></pgip>
<pgip><undoitem>...</undoitem></pgip>
3. the terminator sent back is now preceded by either -1 (command not
successful) or n (an integer to be sent for undoing)
4. undoing is now supported
Just a few lines test to understand with Cezary Kalinsky how much effort is
required to integrate Matita in his generic AJAX based interface.
matitawiki is an executable that reads from stdin and prints output and error on
stdout/stderr (both followed by (Char.chr 249) after each command).
All the interactive commands (thus also "undo") are not supported.
1. buf fixed in eval_from_stream when first_statemente_only=true:
the last computed states were lost
2. added a new watcher function to eval_from_stream.
The function is called after the execution of each command.