]> matita.cs.unibo.it Git - helm.git/log
helm.git
14 years agoMinor code clean-up to simplify module dependencies.
Claudio Sacerdoti Coen [Thu, 4 Nov 2010 20:54:55 +0000 (20:54 +0000)]
Minor code clean-up to simplify module dependencies.

14 years ago- dependencies between statuses simplified
Claudio Sacerdoti Coen [Thu, 4 Nov 2010 20:39:17 +0000 (20:39 +0000)]
- dependencies between statuses simplified

14 years ago- content/interpretations.ml and ng_cic_content/nTermCicContent.ml where
Claudio Sacerdoti Coen [Thu, 4 Nov 2010 20:26:10 +0000 (20:26 +0000)]
- content/interpretations.ml and ng_cic_content/nTermCicContent.ml where
  mutually recursive and part of the status was kept imperatively;
  the two files have been merged together into ng_cic_content/interpretations.ml

14 years ago- some changes in the crux icon
Ferruccio Guidi [Thu, 4 Nov 2010 14:51:22 +0000 (14:51 +0000)]
- some changes in the crux icon
- the installation of the icons is now automatized

14 years ago- dandling code (to be put somewhere) implementing recursive compilation
Andrea Asperti [Thu, 4 Nov 2010 14:10:46 +0000 (14:10 +0000)]
- dandling code (to be put somewhere) implementing recursive compilation

14 years ago- interpretations are now saved in the .ng files
Andrea Asperti [Thu, 4 Nov 2010 14:10:07 +0000 (14:10 +0000)]
- interpretations are now saved in the .ng files

14 years ago- Print/Set commands removed
Andrea Asperti [Thu, 4 Nov 2010 13:36:47 +0000 (13:36 +0000)]
- Print/Set commands removed
- stupid bug fixed in interpretations: we did not add the new id to the
  id list, so that only the first interpretation was considered
- added a new field to the interpretations status to record the recently
  added aliases that need to be made explicit in the script; much better
  than what we did before (alias diffing)

14 years agolast commit for helena 0.8.1
Ferruccio Guidi [Wed, 3 Nov 2010 21:02:44 +0000 (21:02 +0000)]
last commit for helena 0.8.1

- xsl      : we can render the levels of the abstractions
- ccs      : we output three kinds of constraints
- Makefiles: we automatized the relising process
- brgCrg   : all abstractions have infinite level for now

14 years agonotation kind of works
Enrico Tassi [Wed, 3 Nov 2010 17:14:35 +0000 (17:14 +0000)]
notation kind of works

14 years ago- LexiconAst merged into GrafiteAst
Andrea Asperti [Wed, 3 Nov 2010 14:13:11 +0000 (14:13 +0000)]
- LexiconAst merged into GrafiteAst
- all lexicon stuff made functional (more or less)
- no more .lexicon files

14 years ago- the connections between the intermediate language and the "bag"
Ferruccio Guidi [Tue, 2 Nov 2010 22:06:52 +0000 (22:06 +0000)]
- the connections between the intermediate language and the "bag"
kernel were missing
- the connections between the intermediate language and the "bag"
kernel are now tail recursive
- the dtd now declares the "level" attribute
- some "assert false" removed in crg
- xml exportation of the data processed by the "bag" kernel is now
available
- the "bag" kernel now uses Entity names rather than identifiers

14 years agobig change in parsing, trying to make all functional
Enrico Tassi [Tue, 2 Nov 2010 17:08:43 +0000 (17:08 +0000)]
big change in parsing, trying to make all functional

14 years ago- some bugfix
Ferruccio Guidi [Mon, 1 Nov 2010 15:18:57 +0000 (15:18 +0000)]
- some bugfix
- some
- old intermediate language (meta) has been removed

14 years agothe old intermediate language (meta) is now obsolete
Ferruccio Guidi [Sun, 31 Oct 2010 22:52:29 +0000 (22:52 +0000)]
the old intermediate language (meta) is now obsolete

14 years agowhen sort inclusion is enabled, we can produce conversion constraints in xml
Ferruccio Guidi [Sun, 31 Oct 2010 15:13:37 +0000 (15:13 +0000)]
when sort inclusion is enabled, we can produce conversion constraints in xml
format

14 years agoa module was missing .........
Ferruccio Guidi [Sat, 30 Oct 2010 13:03:34 +0000 (13:03 +0000)]
a module was missing .........

14 years ago- initial support for abstractions with explicit levels
Ferruccio Guidi [Sat, 30 Oct 2010 13:00:05 +0000 (13:00 +0000)]
- initial support for abstractions with explicit levels
- some minor bug fixes

14 years agoMore parts of the lexicon status made functional.
Claudio Sacerdoti Coen [Fri, 29 Oct 2010 22:29:20 +0000 (22:29 +0000)]
More parts of the lexicon status made functional.
Still mostly untested.

14 years agoPorting to new syntax.
Claudio Sacerdoti Coen [Fri, 29 Oct 2010 21:15:46 +0000 (21:15 +0000)]
Porting to new syntax.

14 years agoPorting to new syntax.
Claudio Sacerdoti Coen [Fri, 29 Oct 2010 21:10:19 +0000 (21:10 +0000)]
Porting to new syntax.

14 years agoPorting to new syntax.
Claudio Sacerdoti Coen [Fri, 29 Oct 2010 21:07:18 +0000 (21:07 +0000)]
Porting to new syntax.

14 years agoPorting to intermediate syntax.
Claudio Sacerdoti Coen [Fri, 29 Oct 2010 21:06:18 +0000 (21:06 +0000)]
Porting to intermediate syntax.

14 years agoBug fixed: a missing eta-expansion raised an assert false
Claudio Sacerdoti Coen [Fri, 29 Oct 2010 20:59:56 +0000 (20:59 +0000)]
Bug fixed: a missing eta-expansion raised an assert false

14 years agoWARNING: partial commit.
Claudio Sacerdoti Coen [Fri, 29 Oct 2010 20:57:21 +0000 (20:57 +0000)]
WARNING: partial commit.

- matita is compiling again, but totally untested
- major re-organization of the statuses

14 years agoWARNING: partial commit (does not compile)
Andrea Asperti [Fri, 29 Oct 2010 16:42:43 +0000 (16:42 +0000)]
WARNING: partial commit (does not compile)

1) major re-organization of statuses
2) major change to dumpability
3) partial functionalization of lexicon status

14 years ago- grammar of // changed to move the justification inside;
Andrea Asperti [Fri, 29 Oct 2010 11:27:11 +0000 (11:27 +0000)]
- grammar of // changed to move the justification inside;
  reason: that brain damaged piece of software that is CAMLP5 does a
    lookahead and then it forgets to rollback the token (why??? is it
    a bug). As a consequence matita used to work (since it parses a
    statement at a time), but not matitac (since the lookahead destroyed
    the next command)
- core_notation.moo: \frac used to be at level 90, but this is incorrect
    during parsing and incompatible with the new syntax; \frac is now
    used only in output
- minor dead code removal here and there

14 years agoDead code for .moo files removed.
Andrea Asperti [Wed, 27 Oct 2010 15:16:20 +0000 (15:16 +0000)]
Dead code for .moo files removed.

14 years ago.moo no longer used: all interesting data is left in either .lexicon or
Andrea Asperti [Wed, 27 Oct 2010 15:03:47 +0000 (15:03 +0000)]
.moo no longer used: all interesting data is left in either .lexicon or
.ng

14 years agoBug fixed: heuristic to detect real URIs used to raise an exception.
Andrea Asperti [Wed, 27 Oct 2010 09:55:21 +0000 (09:55 +0000)]
Bug fixed: heuristic to detect real URIs used to raise an exception.

14 years agoold standard library no longer included
Andrea Asperti [Wed, 27 Oct 2010 09:53:58 +0000 (09:53 +0000)]
old standard library no longer included

14 years agoadd some virtuals
Enrico Tassi [Tue, 26 Oct 2010 16:01:09 +0000 (16:01 +0000)]
add some virtuals

14 years agourimanager removed
Andrea Asperti [Tue, 26 Oct 2010 14:32:14 +0000 (14:32 +0000)]
urimanager removed

14 years agofix queries
Enrico Tassi [Tue, 26 Oct 2010 14:00:32 +0000 (14:00 +0000)]
fix queries

14 years agoLast commit made matita FTBFS. Fixed.
Andrea Asperti [Tue, 26 Oct 2010 13:20:32 +0000 (13:20 +0000)]
Last commit made matita FTBFS. Fixed.

14 years agoSome files ported to intermediate syntax to test.
Andrea Asperti [Tue, 26 Oct 2010 13:09:00 +0000 (13:09 +0000)]
Some files ported to intermediate syntax to test.

14 years agoSTATS removed (was it still working properly??)
Andrea Asperti [Tue, 26 Oct 2010 13:03:11 +0000 (13:03 +0000)]
STATS removed (was it still working properly??)

14 years agocic module removed (RIP)
Andrea Asperti [Tue, 26 Oct 2010 12:58:39 +0000 (12:58 +0000)]
cic module removed (RIP)

14 years agotentative parser patch with symbolic tactics names
Enrico Tassi [Fri, 22 Oct 2010 15:59:56 +0000 (15:59 +0000)]
tentative parser patch with symbolic tactics names

14 years agoelim implemented as a notation for apply
Andrea Asperti [Fri, 22 Oct 2010 12:01:20 +0000 (12:01 +0000)]
elim implemented as a notation for apply

14 years agoBug fixed: it always made an undo to the empty status (stupid bug
Andrea Asperti [Fri, 22 Oct 2010 12:00:11 +0000 (12:00 +0000)]
Bug fixed: it always made an undo to the empty status (stupid bug
introduced in last commit)

14 years agocamlp5 probably changed some internal data structures and now they cannot be compared...
Enrico Tassi [Tue, 19 Oct 2010 13:25:32 +0000 (13:25 +0000)]
camlp5 probably changed some internal data structures and now they cannot be compared with pervasives.comapre, thus we avoid it. Was breaking the natural deduction stuff

14 years agofixed many scripts that broke for various reasons
Enrico Tassi [Sun, 17 Oct 2010 09:13:26 +0000 (09:13 +0000)]
fixed many scripts that broke for various reasons

14 years agobackport of patches to unification
Enrico Tassi [Sun, 17 Oct 2010 09:12:29 +0000 (09:12 +0000)]
backport of patches to unification

14 years agofixed List.for_all2 called without knowing if the two lists have the same length
Enrico Tassi [Sun, 17 Oct 2010 09:09:12 +0000 (09:09 +0000)]
fixed List.for_all2 called without knowing if the two lists have the same length

14 years agonew case for higher order unification:
Enrico Tassi [Sun, 17 Oct 2010 09:08:05 +0000 (09:08 +0000)]
new case for higher order unification:

  (? ?) =?= (f x)

is not handled by delift, since flexible arguments in the local context
are skipped by delift, resulting in the instantiation of the head meta to
a constant function, even if the rhs is structurally the same.

14 years agoremoved wrong optimization in delift and export is_flexible
Enrico Tassi [Sun, 17 Oct 2010 09:05:51 +0000 (09:05 +0000)]
removed wrong optimization in delift and export is_flexible

14 years agothe Makefile was still calling transcript.
Andrea Asperti [Sat, 16 Oct 2010 06:09:24 +0000 (06:09 +0000)]
the Makefile was still calling transcript.

14 years agotranscript removed (currently useless)
Claudio Sacerdoti Coen [Fri, 15 Oct 2010 15:17:14 +0000 (15:17 +0000)]
transcript removed (currently useless)

14 years agoPolymorphic recursion no longer required!!!
Claudio Sacerdoti Coen [Fri, 15 Oct 2010 14:55:43 +0000 (14:55 +0000)]
Polymorphic recursion no longer required!!!

14 years ago- bug fixed (introduced by last commit from Andrea in MatitaEngine):
Claudio Sacerdoti Coen [Fri, 15 Oct 2010 14:41:16 +0000 (14:41 +0000)]
- bug fixed (introduced by last commit from Andrea in MatitaEngine):
  recursive inclusion was de-activated
- some dead code removal

14 years ago- grafiteSync no longer used
Claudio Sacerdoti Coen [Fri, 15 Oct 2010 12:17:16 +0000 (12:17 +0000)]
- grafiteSync no longer used
- grafiteTypes.status simplified

14 years agoPropagation of changes to grafiteAst.
Andrea Asperti [Wed, 13 Oct 2010 11:04:46 +0000 (11:04 +0000)]
Propagation of changes to grafiteAst.

14 years agoCic.term and Cic.obj unused!
Andrea Asperti [Fri, 8 Oct 2010 13:21:54 +0000 (13:21 +0000)]
Cic.term and Cic.obj unused!

14 years ago- cic almost not used
Andrea Asperti [Fri, 8 Oct 2010 11:36:04 +0000 (11:36 +0000)]
- cic almost not used

14 years agohgdome no longer used (RIP)
Andrea Asperti [Fri, 8 Oct 2010 11:18:01 +0000 (11:18 +0000)]
hgdome no longer used (RIP)

14 years ago- most of cicUtil no longer used
Andrea Asperti [Fri, 8 Oct 2010 11:12:09 +0000 (11:12 +0000)]
- most of cicUtil no longer used

14 years ago- most of cic/ removed
Andrea Asperti [Fri, 8 Oct 2010 11:03:27 +0000 (11:03 +0000)]
- most of cic/ removed

14 years agoLibrary committed again (because of a bug in SVN)
Andrea Asperti [Fri, 8 Oct 2010 11:01:14 +0000 (11:01 +0000)]
Library committed again (because of a bug in SVN)

14 years agoSVN bug: library lost, copying it again from previous version (???)
Andrea Asperti [Fri, 8 Oct 2010 10:51:07 +0000 (10:51 +0000)]
SVN bug: library lost, copying it again from previous version (???)

14 years ago- hmysql removed (RIP)
Andrea Asperti [Fri, 8 Oct 2010 10:30:47 +0000 (10:30 +0000)]
- hmysql removed (RIP)
- library simplified to handle only new files, moo and lexicon
- BROKEN FEATURES: recursive decompilation of library files is currently
  broken since, without the db, there is currently no way to compute the
  reverse dependencies

14 years agocicNotation* ==> notation*
Andrea Asperti [Fri, 8 Oct 2010 09:23:01 +0000 (09:23 +0000)]
cicNotation* ==> notation*

14 years ago- acic_content ==> content
Andrea Asperti [Fri, 8 Oct 2010 09:01:00 +0000 (09:01 +0000)]
- acic_content ==> content
- termAcicContent ==> interpretations

14 years agoxmldiff removed
Andrea Asperti [Thu, 7 Oct 2010 16:29:52 +0000 (16:29 +0000)]
xmldiff removed

14 years ago- cic_exportation, cic_acic, acic_content (only parts related to acic)
Andrea Asperti [Thu, 7 Oct 2010 16:24:44 +0000 (16:24 +0000)]
- cic_exportation, cic_acic, acic_content (only parts related to acic)
  metadata, cic_proof_checking and old binaries removed

14 years agocic_unification removed
Andrea Asperti [Thu, 7 Oct 2010 09:51:17 +0000 (09:51 +0000)]
cic_unification removed

14 years agoacic_procedural and tactics removed
Andrea Asperti [Thu, 7 Oct 2010 09:37:01 +0000 (09:37 +0000)]
acic_procedural and tactics removed

14 years agoRemoved tptp_grafite
Andrea Asperti [Wed, 6 Oct 2010 15:02:58 +0000 (15:02 +0000)]
Removed tptp_grafite

14 years agoremoved tptp_grafite
Andrea Asperti [Wed, 6 Oct 2010 14:30:46 +0000 (14:30 +0000)]
removed tptp_grafite

14 years agonAuto --> nnAuto
Andrea Asperti [Wed, 6 Oct 2010 14:29:15 +0000 (14:29 +0000)]
nAuto --> nnAuto

14 years agoRemoved nauto debug checkbox
Andrea Asperti [Wed, 6 Oct 2010 14:18:02 +0000 (14:18 +0000)]
Removed nauto debug checkbox

14 years agoremoved zipTree and andOrTree.
Andrea Asperti [Wed, 6 Oct 2010 14:12:55 +0000 (14:12 +0000)]
removed zipTree and andOrTree.

14 years agoRemoved nAuto.ml-mli
Andrea Asperti [Wed, 6 Oct 2010 14:08:37 +0000 (14:08 +0000)]
Removed nAuto.ml-mli

14 years agowhelp and cic disambiguation removed
Andrea Asperti [Tue, 5 Oct 2010 16:45:05 +0000 (16:45 +0000)]
whelp and cic disambiguation removed

14 years ago-hbugs: RIP
Andrea Asperti [Tue, 5 Oct 2010 15:35:31 +0000 (15:35 +0000)]
-hbugs: RIP

14 years ago£- use ----------- in place of ## for sequents
Andrea Asperti [Tue, 5 Oct 2010 15:27:56 +0000 (15:27 +0000)]
£- use ----------- in place of ## for sequents

14 years ago-textual widget no longer editable
Andrea Asperti [Tue, 5 Oct 2010 15:21:46 +0000 (15:21 +0000)]
-textual widget no longer editable

14 years agoFont resizing and syntax highlighting re-activated for the browser and
Andrea Asperti [Tue, 5 Oct 2010 14:58:25 +0000 (14:58 +0000)]
Font resizing and syntax highlighting re-activated for the browser and
sequent windows.

14 years ago- parser: "whelp ...Â"removed
Andrea Asperti [Tue, 5 Oct 2010 14:35:36 +0000 (14:35 +0000)]
- parser: "whelp ...Â"removed
- interface: whelp bar removed
- interface: whelp and dependency graphs removed

14 years ago- matitaWiki removed
Andrea Asperti [Tue, 5 Oct 2010 13:56:33 +0000 (13:56 +0000)]
- matitaWiki removed
- dump_moo removed
- matitaAutoGui removed

14 years ago16.2
Enrico Tassi [Fri, 1 Oct 2010 16:31:08 +0000 (16:31 +0000)]
16.2

14 years agoMathML widget no longer used. Requesciat in pacem
Andrea Asperti [Fri, 1 Oct 2010 11:41:37 +0000 (11:41 +0000)]
MathML widget no longer used. Requesciat in pacem

14 years agosync with stable:
Enrico Tassi [Thu, 30 Sep 2010 12:32:10 +0000 (12:32 +0000)]
sync with stable:

patches for hints & unification:

1)
===========
It is an old and know issue. The check_stack calls fo_unif_w_hints only
on a prefix of applications, leaving some arguments on the stack. This
prevents hints to be found. Example

 Hint: And A B === fun_of_morph And_morphism A B

If the problem

  And A B =?= fun_of_morph ? A B

is found immediately (before entering the KAM) the it is solved, but if
it shows up inside the KAM, A and B are left on the stack and a
fo_unif_w_hints has to solve

  And =?= fun_of_morph ?

While one could declare hints multiple times, varying the number of
actual arguments, I believe that the right solution is to make the
KAM code pass more information to fo_unif_w_hints, like the remaining
arguments. Nevertheless, the new fo_unif_w_hints is hard to factor with
the old one (that is used elsewere) so I wrote a new one called
fo_unif_heads_and_cont_or_unwind_and_hints. It first tries fo_unif on
the heads, and if successfull call a continuation (that will unify
all stack arguments pairwise) or unwinds the machine and looks for hints
on the complete terms, not just a prefix.

2)
===========
The fo_unif function does some clever higher order unification in the
case

    (? x1 ... xn)    =?=  (t y1 ... ym)

but in the very similar case

  K (? x1 ... xn) _  =?=  (t y1 ... ym)

it does not.

K has to be reduced away, and afterwards the KAM configuration
has ? and t as heads, xs and ys on the stack. Assume m-n=l, the
unification problems generated by the check_stack function are

  ?   =?=  t y1 .. yl
  xi  =?=  yl+i            for i in 1 .. n

That is clearly suboptimal, since xn and ym could differ, but a clever
instantiation of the flexible head could drop or move around xm.

Moreover one expects the two unification problems to be solved in the
same way by the system, but it does not, and in my case the second one
actually fails. The KAM code should just be a speedup over a naive
unfolding of constants, beta-iota-zeta reduction and fo_unif, but in
this (unfortunate) case it is weaker.

3)
============
The delift function does a lot of work even if the metavariable is being
instantiated with a closed term. This is very often the case when the
term is suggested by hints. Hints may suggest constants in partially
unfolded form (see paper submitted to Type09), that can thus be very
big. This simple patch speeds up delift in this case.

14 years agopatches for hints & unification:
Enrico Tassi [Thu, 30 Sep 2010 12:23:09 +0000 (12:23 +0000)]
patches for hints & unification:

1)
===========
It is an old and know issue. The check_stack calls fo_unif_w_hints only
on a prefix of applications, leaving some arguments on the stack. This
prevents hints to be found. Example

 Hint: And A B === fun_of_morph And_morphism A B

If the problem

  And A B =?= fun_of_morph ? A B

is found immediately (before entering the KAM) the it is solved, but if
it shows up inside the KAM, A and B are left on the stack and a
fo_unif_w_hints has to solve

  And =?= fun_of_morph ?

While one could declare hints multiple times, varying the number of
actual arguments, I believe that the right solution is to make the
KAM code pass more information to fo_unif_w_hints, like the remaining
arguments. Nevertheless, the new fo_unif_w_hints is hard to factor with
the old one (that is used elsewere) so I wrote a new one called
fo_unif_heads_and_cont_or_unwind_and_hints. It first tries fo_unif on
the heads, and if successfull call a continuation (that will unify
all stack arguments pairwise) or unwinds the machine and looks for hints
on the complete terms, not just a prefix.

2)
===========
The fo_unif function does some clever higher order unification in the
case

    (? x1 ... xn)    =?=  (t y1 ... ym)

but in the very similar case

  K (? x1 ... xn) _  =?=  (t y1 ... ym)

it does not.

K has to be reduced away, and afterwards the KAM configuration
has ? and t as heads, xs and ys on the stack. Assume m-n=l, the
unification problems generated by the check_stack function are

  ?   =?=  t y1 .. yl
  xi  =?=  yl+i            for i in 1 .. n

That is clearly suboptimal, since xn and ym could differ, but a clever
instantiation of the flexible head could drop or move around xm.

Moreover one expects the two unification problems to be solved in the
same way by the system, but it does not, and in my case the second one
actually fails. The KAM code should just be a speedup over a naive
unfolding of constants, beta-iota-zeta reduction and fo_unif, but in
this (unfortunate) case it is weaker.

3)
============
The delift function does a lot of work even if the metavariable is being
instantiated with a closed term. This is very often the case when the
term is suggested by hints. Hints may suggest constants in partially
unfolded form (see paper submitted to Type09), that can thus be very
big. This simple patch speeds up delift in this case.

14 years ago...
Enrico Tassi [Thu, 30 Sep 2010 12:19:20 +0000 (12:19 +0000)]
...

14 years agotest to see if svn cp worked as expected
Claudio Sacerdoti Coen [Thu, 30 Sep 2010 11:29:19 +0000 (11:29 +0000)]
test to see if svn cp worked as expected

14 years agoStuff moved from old Matita.
Claudio Sacerdoti Coen [Thu, 30 Sep 2010 11:28:18 +0000 (11:28 +0000)]
Stuff moved from old Matita.

14 years agoTowards Matita 1.0 (new kernel etc. only).
Claudio Sacerdoti Coen [Thu, 30 Sep 2010 11:24:21 +0000 (11:24 +0000)]
Towards Matita 1.0 (new kernel etc. only).

14 years agohints for \epsilon
Enrico Tassi [Wed, 29 Sep 2010 13:45:41 +0000 (13:45 +0000)]
hints for \epsilon

14 years agohints polished and fixed to allow recursive inference of ext_carr
Enrico Tassi [Tue, 28 Sep 2010 23:09:45 +0000 (23:09 +0000)]
hints polished and fixed to allow recursive inference of ext_carr

14 years agonicer hints, 16.1->3 done
Enrico Tassi [Tue, 28 Sep 2010 11:35:23 +0000 (11:35 +0000)]
nicer hints, 16.1->3 done

14 years agomany fixes to setoids for re, 16.1 almost done
Enrico Tassi [Mon, 27 Sep 2010 23:25:57 +0000 (23:25 +0000)]
many fixes to setoids for re, 16.1 almost done

14 years agofixed notation for \cup and \cap
Enrico Tassi [Mon, 27 Sep 2010 23:25:07 +0000 (23:25 +0000)]
fixed notation for \cup and \cap

14 years agosome reorganization + some more re-setoids.ma proofs
Enrico Tassi [Sat, 25 Sep 2010 14:55:09 +0000 (14:55 +0000)]
some reorganization + some more re-setoids.ma proofs

14 years agomorphism support moved to sets/ and logic/cprop
Enrico Tassi [Thu, 23 Sep 2010 22:39:08 +0000 (22:39 +0000)]
morphism support moved to sets/ and logic/cprop

14 years agointerpretation for <->
Enrico Tassi [Thu, 23 Sep 2010 22:36:07 +0000 (22:36 +0000)]
interpretation for <->

14 years agofix typo
Enrico Tassi [Thu, 23 Sep 2010 22:35:46 +0000 (22:35 +0000)]
fix typo

14 years agopatch by Brian committed, cut&paste should not crash matita any longer
Enrico Tassi [Thu, 23 Sep 2010 19:55:43 +0000 (19:55 +0000)]
patch by Brian committed, cut&paste should not crash matita any longer

14 years agoSetoid-Rewriting under Ex works for an arbitrary depth of Ex. Patches needed:
Enrico Tassi [Thu, 23 Sep 2010 13:42:24 +0000 (13:42 +0000)]
Setoid-Rewriting under Ex works for an arbitrary depth of Ex. Patches needed:

Index: ../components/ng_refiner/nCicUnification.ml
===================================================================
--- ../components/ng_refiner/nCicUnification.ml (revision 10941)
+++ ../components/ng_refiner/nCicUnification.ml (working copy)
@@ -97,7 +97,7 @@
    let time2 = Unix.gettimeofday () in
    let time1 =
     match !times with time1::tl -> times := tl; time1 | [] -> assert false in
-   prerr_endline ("}}} " ^ string_of_float (time2 -. time1));
+   prerr_endline ("}}} " ^ !indent ^ " " ^ string_of_float (time2 -. time1));
    (match exc_opt with
    | Some e ->  prerr_endline ("exception raised: " ^ Printexc.to_string e)
    | None -> ());
@@ -730,6 +730,32 @@
               | Uncertain _ as exn -> raise exn
               | _ -> assert false
     in
+    let fo_unif_heads_and_cont_or_unwind_and_hints
+      test_eq_only metasenv subst m1 m2 cont hm1 hm2
+     =
+      let ms, continuation =
+        (* calling the continuation inside the outermost try is an option
+           and makes unification stronger, but looks not frequent to me
+           that heads unify but not the arguments and that an hints can fix
+           that *)
+        try fo_unif test_eq_only metasenv subst m1 m2, cont
+        with
+        | UnificationFailure _
+        | KeepReducing _ | Uncertain _ as exn ->
+           let (t1,norm1),(t2,norm2) = hm1, hm2 in
+           match
+             try_hints metasenv subst
+              (norm1,NCicReduction.unwind t1) (norm2,NCicReduction.unwind t2)
+           with
+            | Some x -> x, fun x -> x
+            | None ->
+                match exn with
+                | KeepReducing msg -> raise (KeepReducingThis (msg,hm1,hm2))
+                | UnificationFailure _ | Uncertain _ as exn -> raise exn
+                | _ -> assert false
+      in
+        continuation ms
+    in
     let height_of = function
      | NCic.Const (Ref.Ref (_,Ref.Def h))
      | NCic.Const (Ref.Ref (_,Ref.Fix (_,_,h)))
@@ -767,7 +793,7 @@
             match t1 with
             | C.Const r -> NCicEnvironment.get_relevance r
             | _ -> [] *) in
-          let unif_from_stack t1 t2 b metasenv subst =
+          let unif_from_stack (metasenv, subst) (t1, t2, b) =
               try
                 let t1 = NCicReduction.from_stack ~delta:max_int t1 in
                 let t2 = NCicReduction.from_stack ~delta:max_int t2 in
@@ -784,14 +810,19 @@
                 NCicReduction.unwind (k2,e2,t2,List.rev l2),
                 todo
           in
-        let hh1,hh2,todo=check_stack (List.rev s1) (List.rev s2) relevance [] in
+          let check_stack l1 l2 r =
+            match t1, t2 with
+            | NCic.Meta _, _ | _, NCic.Meta _ ->
+                (NCicReduction.unwind (k1,e1,t1,s1)),
+                (NCicReduction.unwind (k2,e2,t2,s2)),[]
+            | _ -> check_stack l1 l2 r []
+          in
+        let hh1,hh2,todo = check_stack (List.rev s1) (List.rev s2) relevance in
         try
-         let metasenv,subst =
-          fo_unif_w_hints test_eq_only metasenv subst (norm1,hh1) (norm2,hh2) in
-         List.fold_left
-          (fun (metasenv,subst) (x1,x2,r) ->
-            unif_from_stack x1 x2 r metasenv subst
-          ) (metasenv,subst) todo
+          fo_unif_heads_and_cont_or_unwind_and_hints
+            test_eq_only metasenv subst (norm1,hh1) (norm2,hh2)
+            (fun ms -> List.fold_left unif_from_stack ms todo)
+            m1 m2
         with
          | KeepReducing _ -> assert false
          | KeepReducingThis _ ->

14 years agofixed notation
Enrico Tassi [Thu, 16 Sep 2010 21:28:13 +0000 (21:28 +0000)]
fixed notation

14 years agosome more work
Enrico Tassi [Sun, 12 Sep 2010 19:40:39 +0000 (19:40 +0000)]
some more work