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.
Enrico Zoli [Wed, 17 Jan 2007 17:59:59 +0000 (17:59 +0000)]
This is the roadmap of the constructive proof of Lebesgue's dominated
convergence theorem in the order theoretic setting. I.e. we speak of
convergence (in terms of liminf and limsup) and not of norms/measures.
The formulation should be fully constructive:
1. the exceeds relation is used in place of the derived negative notion
<= for partial orders
2. strong sup and infs are used in place of the weaker sup and infs
3. the statement of Lebesgue's dominated converge theorem is just
extensionality of the functional
\lambda f. liminf f a_n
with respect to the apartness relation # over real numbers and the
exceeds/apartness relation over partial orders.
Interesting points to be noticed:
a) one lemma used in the proof is Fatou. This lemma can be given in the
usual negative formulation (i.e. on <=)
b) another lemma used in the proof is that the liminf is less or equal to
the limsup. This lemm can be given in the usual negative formulation
(i.e. on <=). Moreover, we feel that if <= is not defined as
~< it is actually impossible to constructively prove it.
Ferruccio Guidi [Fri, 12 Jan 2007 19:34:58 +0000 (19:34 +0000)]
procedural: added fwd rewrite in arbitrary proofs (not just premises)
added whd conversion before intros when needed
prova.ma : highlighted a bug with the "in" clause of the "match" constr.
Bug fixed in definition of cic:/.../setoids/make_compatibility_goal_aux.con:
two generalizes were done in the wrong order, permuting the arguments and
making every relation change its variance!
Enrico Tassi [Sat, 6 Jan 2007 16:16:40 +0000 (16:16 +0000)]
- inside dicrimination_tree is now checked the invariant that bad terms are indexed, but this invariant is not always respected, so a 'Dead' representative is used and a warning is printed.
- autoCache (should) not index bad terms
There used to be two minimal joins between an ordered_set and an abelian_group:
ordered_field_ch0 and riesz_space. To avoid the problem without introducing
backtracking in unification I have introduced ordered_abelian_groups.
An ordered_field_ch0 is recast as a field that is also an ordered_abelian_group
and a cotransitively_ordered_set. I still have to recast riesz_spaces as
vector spaces that are also ordered_abelian_groups and lattices.