]>
matita.cs.unibo.it Git - helm.git/log
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
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 _ ->
Enrico Tassi [Thu, 16 Sep 2010 21:28:13 +0000 (21:28 +0000)]
fixed notation
Enrico Tassi [Sun, 12 Sep 2010 19:40:39 +0000 (19:40 +0000)]
some more work
Enrico Tassi [Sun, 12 Sep 2010 16:55:11 +0000 (16:55 +0000)]
Change (or better define) the order of hints premises.
They are now processed top to bottom, and not viceversa as before. This seems
to be right thing, since rules like:
X := carr T
....
R := mk_foo ... (P X) ... T ...
--------------------------------- |-
carr R = (P X)
can't be written putting X := carr T last, but you really want to be sure that
the needed assumptions to obtain a foo (in that case, that X is the carrier of
a setoid T) are available _before_ you even try to typecheck the bigger
unification problem (that may not be well typed if X and carr T are not
_convertible_, since in the fix function called in instantiate we call the
typechecker and not the refiner).
Enrico Tassi [Sun, 12 Sep 2010 11:06:39 +0000 (11:06 +0000)]
non uniform coercions landed in hints_declaration.ma, setoids and sets library
updated accordingly
Enrico Tassi [Thu, 9 Sep 2010 22:14:11 +0000 (22:14 +0000)]
Some refactoring in set*.ma, some new notations and new hints for \cup.
non uniform coercions still to be pushed from re-setoids.ma to a place
before sets.ma, maybe in hints_declaration.ma since they are complementary.
Enrico Tassi [Thu, 9 Sep 2010 16:01:20 +0000 (16:01 +0000)]
th 16.2 proved in the setoids setting
Enrico Tassi [Wed, 8 Sep 2010 21:51:05 +0000 (21:51 +0000)]
...
Enrico Tassi [Wed, 8 Sep 2010 16:31:02 +0000 (16:31 +0000)]
better not allowed sort elimination error messsage
Enrico Tassi [Wed, 8 Sep 2010 16:27:48 +0000 (16:27 +0000)]
...
Enrico Tassi [Wed, 8 Sep 2010 16:20:00 +0000 (16:20 +0000)]
...
Enrico Tassi [Wed, 8 Sep 2010 13:30:32 +0000 (13:30 +0000)]
...
Ferruccio Guidi [Tue, 17 Aug 2010 15:37:28 +0000 (15:37 +0000)]
some fixes to cope with the new mowgli server architecture
Ferruccio Guidi [Tue, 17 Aug 2010 14:38:30 +0000 (14:38 +0000)]
we can now generate static html pages about crg terms
Ferruccio Guidi [Sat, 7 Aug 2010 11:37:52 +0000 (11:37 +0000)]
some inprovements on the generated html pages
Ferruccio Guidi [Fri, 6 Aug 2010 23:26:57 +0000 (23:26 +0000)]
ld.dtd: updated to comply with crg
Makefiles: updated to comply with new HELM server configuration
top: some traces of old command line option "-m" removed
Ferruccio Guidi [Fri, 6 Aug 2010 19:24:59 +0000 (19:24 +0000)]
we removed old HAL exportation (replaced by XML exportation)
Ferruccio Guidi [Fri, 6 Aug 2010 18:23:25 +0000 (18:23 +0000)]
we renamed the module abbreviations according to src/modules.ml
ld.dtd: now is more strict
Makefiles: some refactoring
crg: bug fix in name/indexes translation
xmlLibrary: bug fix in the rendering of the "name" attribute: ^ is
forbidden in a NMTOKEN
brgOutput: new xml exportation via xmlCrg
Ferruccio Guidi [Fri, 6 Aug 2010 12:13:49 +0000 (12:13 +0000)]
the refactoring continues ...
Ferruccio Guidi [Fri, 6 Aug 2010 11:49:10 +0000 (11:49 +0000)]
new module "xml" devoted to xml I/O
Ferruccio Guidi [Fri, 6 Aug 2010 11:29:40 +0000 (11:29 +0000)]
the refactoring continues ....
Ferruccio Guidi [Fri, 6 Aug 2010 11:27:18 +0000 (11:27 +0000)]
now we take the NUri module from the helm-ng_kernel packeage
Ferruccio Guidi [Fri, 6 Aug 2010 10:57:42 +0000 (10:57 +0000)]
the refactoring continues
Ferruccio Guidi [Fri, 6 Aug 2010 10:52:43 +0000 (10:52 +0000)]
refactoring: helena sources are now in a dedicated directory
Ferruccio Guidi [Fri, 6 Aug 2010 10:21:49 +0000 (10:21 +0000)]
txtLexer: bug fix in parsing the string tokens
library: we now export the "meta" attribute
crgXml: crg exportation factorized and alpha conversion now works
crgBrg: we now mark the abstraction and the reverse translation works
ld.dtd: updated to export crg contents
Ferruccio Guidi [Tue, 3 Aug 2010 20:54:58 +0000 (20:54 +0000)]
- we simplified the parser return values
- now the display of parser and lexer debug information is controlled
from the command line (with the options -P and -L)
complete_rg: now the empty binders are not treated especially
top: we isolated a fragment of slow code (process_streaming) to be
investigated. It can be enabled with the -1 command line option)
Makefile: we now create the etc directory when it is missing
Claudio Sacerdoti Coen [Thu, 29 Jul 2010 15:27:13 +0000 (15:27 +0000)]
Bug fixed: nodes were copied.
Enrico Tassi [Thu, 29 Jul 2010 15:09:38 +0000 (15:09 +0000)]
interpret non ambiguous symbols ASAP
Enrico Tassi [Wed, 28 Jul 2010 16:44:03 +0000 (16:44 +0000)]
...
Enrico Tassi [Wed, 28 Jul 2010 16:43:39 +0000 (16:43 +0000)]
allows auto before eq is defined
Claudio Sacerdoti Coen [Wed, 28 Jul 2010 16:14:53 +0000 (16:14 +0000)]
...
Wilmer Ricciotti [Wed, 28 Jul 2010 15:45:04 +0000 (15:45 +0000)]
Fixes unexpected behaviour of ncut when multiple goals are selected.
Wilmer Ricciotti [Wed, 28 Jul 2010 15:44:09 +0000 (15:44 +0000)]
Experimental enhancements to the ndestruct tactic. By using the syntax
ndestruct (e1 ... em) skip (H1 ... Hn)
the user can tell the tactic that
- only equations e1 ... em should be considered
- rewriting should happen only in hypotheses H1 ... Hn and in the goal
both "(e1 ... em)" and "skip (H1 ... Hn)" are optional parameters.
Claudio Sacerdoti Coen [Fri, 23 Jul 2010 09:25:06 +0000 (09:25 +0000)]
Some experiments on a co-inductive Heityng algebra.
Enrico Tassi [Thu, 22 Jul 2010 08:11:22 +0000 (08:11 +0000)]
...
Enrico Tassi [Thu, 22 Jul 2010 08:05:23 +0000 (08:05 +0000)]
some work on \exists
Enrico Tassi [Thu, 22 Jul 2010 08:05:08 +0000 (08:05 +0000)]
eq -> eq0 renaming
Enrico Tassi [Thu, 22 Jul 2010 08:04:43 +0000 (08:04 +0000)]
useless box removed
Enrico Tassi [Thu, 22 Jul 2010 08:04:19 +0000 (08:04 +0000)]
fixed precedence so that no () are needed around variable assignement
Enrico Tassi [Thu, 22 Jul 2010 08:03:45 +0000 (08:03 +0000)]
do not apply hints if metaclosed
Enrico Tassi [Thu, 22 Jul 2010 08:03:17 +0000 (08:03 +0000)]
avoid assert false, just fail generating the coercion
Enrico Tassi [Wed, 21 Jul 2010 15:46:33 +0000 (15:46 +0000)]
...
Enrico Tassi [Wed, 21 Jul 2010 15:34:49 +0000 (15:34 +0000)]
...
Enrico Tassi [Wed, 21 Jul 2010 08:54:04 +0000 (08:54 +0000)]
...
Enrico Tassi [Wed, 21 Jul 2010 08:05:59 +0000 (08:05 +0000)]
...
Ferruccio Guidi [Tue, 20 Jul 2010 16:15:22 +0000 (16:15 +0000)]
new icons for the lambda-delta web site
Enrico Tassi [Tue, 20 Jul 2010 12:43:19 +0000 (12:43 +0000)]
completed lemma 17
Enrico Tassi [Mon, 19 Jul 2010 09:29:50 +0000 (09:29 +0000)]
...
Enrico Tassi [Thu, 15 Jul 2010 16:16:50 +0000 (16:16 +0000)]
re 16.4 almost done
Enrico Tassi [Sat, 10 Jul 2010 16:29:47 +0000 (16:29 +0000)]
big mess of notation
Enrico Tassi [Fri, 9 Jul 2010 12:43:33 +0000 (12:43 +0000)]
more notation
Enrico Tassi [Wed, 7 Jul 2010 16:08:18 +0000 (16:08 +0000)]
moved formal_topology into library"
Enrico Tassi [Tue, 6 Jul 2010 10:42:33 +0000 (10:42 +0000)]
some notation for map_arrows2
Claudio Sacerdoti Coen [Sun, 4 Jul 2010 18:48:10 +0000 (18:48 +0000)]
...
Claudio Sacerdoti Coen [Sun, 4 Jul 2010 11:24:14 +0000 (11:24 +0000)]
Some important proofs/definitions were (and are still) commented out and
do not compile.
Added the notion of functor1 to state the main theorem.
Claudio Sacerdoti Coen [Thu, 1 Jul 2010 22:01:36 +0000 (22:01 +0000)]
Proof simplified.
Claudio Sacerdoti Coen [Thu, 1 Jul 2010 21:38:32 +0000 (21:38 +0000)]
Proof simplified (??).
Enrico Tassi [Thu, 1 Jul 2010 16:52:00 +0000 (16:52 +0000)]
...
Enrico Tassi [Wed, 30 Jun 2010 20:33:43 +0000 (20:33 +0000)]
...
Enrico Tassi [Wed, 30 Jun 2010 14:10:39 +0000 (14:10 +0000)]
...
Enrico Tassi [Wed, 30 Jun 2010 13:29:50 +0000 (13:29 +0000)]
...
Enrico Tassi [Wed, 30 Jun 2010 09:44:22 +0000 (09:44 +0000)]
....
Enrico Tassi [Tue, 29 Jun 2010 14:03:40 +0000 (14:03 +0000)]
...
Enrico Tassi [Tue, 29 Jun 2010 12:07:37 +0000 (12:07 +0000)]
notation made half decent
Enrico Tassi [Mon, 28 Jun 2010 20:15:28 +0000 (20:15 +0000)]
better notation for oalgebra
Enrico Tassi [Fri, 18 Jun 2010 11:11:43 +0000 (11:11 +0000)]
....
Enrico Tassi [Thu, 17 Jun 2010 21:41:00 +0000 (21:41 +0000)]
off by one fixed
Wilmer Ricciotti [Thu, 10 Jun 2010 18:23:59 +0000 (18:23 +0000)]
Fix for inversion principles of types with a single constructor.
Wilmer Ricciotti [Tue, 8 Jun 2010 16:15:14 +0000 (16:15 +0000)]
Fixed a bug in the undebruijnate function which caused the refiner to produce
a wrong object when refining mutually recursive functions (the references to
recursive calls would contain the wrong index to the recursive argument).
Enrico Tassi [Mon, 7 Jun 2010 22:56:03 +0000 (22:56 +0000)]
some stuff on re
Enrico Tassi [Mon, 7 Jun 2010 22:55:47 +0000 (22:55 +0000)]
unify left args of inductive types with left argus of constructors. this allows
to put ? in every left arg of every constructor of an inductive type.
Wilmer Ricciotti [Wed, 12 May 2010 18:41:47 +0000 (18:41 +0000)]
Library support files for John Major equality and Russell.
Wilmer Ricciotti [Wed, 12 May 2010 18:39:05 +0000 (18:39 +0000)]
Experimental support for Russell (coercions moving inside lambda & pattern
matching etc.) added to the refiner.
Andrea Asperti [Tue, 11 May 2010 08:50:33 +0000 (08:50 +0000)]
minimization.ma
Enrico Tassi [Tue, 11 May 2010 07:21:34 +0000 (07:21 +0000)]
little workaround for multiple screens, gdk support not bound by lablgtk2
Enrico Tassi [Mon, 10 May 2010 09:48:33 +0000 (09:48 +0000)]
new intro:
- #; -- introduces into the context every possible assumption giving
to it an unusable name
- #h1 .. h2; -- multi intros
- intros; -- macro che espande a #h1...hn.
Enrico Tassi [Fri, 7 May 2010 21:21:01 +0000 (21:21 +0000)]
trace generation with "// by _;"
Enrico Tassi [Fri, 7 May 2010 21:20:58 +0000 (21:20 +0000)]
notation
Andrea Asperti [Fri, 7 May 2010 10:04:00 +0000 (10:04 +0000)]
remarks and applyS
Claudio Sacerdoti Coen [Thu, 6 May 2010 22:35:02 +0000 (22:35 +0000)]
Bug fixed: nstatus => status (to undo the changes).
Worring warnings commented out.
Claudio Sacerdoti Coen [Thu, 6 May 2010 15:52:38 +0000 (15:52 +0000)]
...
Wilmer Ricciotti [Thu, 6 May 2010 15:50:07 +0000 (15:50 +0000)]
Fixing naming scheme for composite coercions.
Claudio Sacerdoti Coen [Thu, 6 May 2010 15:45:35 +0000 (15:45 +0000)]
assert false could happen
Claudio Sacerdoti Coen [Thu, 6 May 2010 15:15:46 +0000 (15:15 +0000)]
Bug fixed:
During unification of E1 with E2, E1 and E2 where not always reduced.
In particular, reduction was not performed in the cases:
LetIn vs LetIn, Match vs Match
and maybe also in some cases Appl Meta vs Appl Meta (who knows?)
Claudio Sacerdoti Coen [Wed, 5 May 2010 15:13:41 +0000 (15:13 +0000)]
coinduction is between us
Claudio Sacerdoti Coen [Wed, 5 May 2010 14:29:57 +0000 (14:29 +0000)]
First tests.
Wilmer Ricciotti [Tue, 4 May 2010 16:49:59 +0000 (16:49 +0000)]
* Fixed a couple of glitches in ndestruct
- blob equations were not always handled properly
- tactic used to fail due to not optimal behaviour of the refiner
* Added (experimental) support for JM equality to ndestruct
Claudio Sacerdoti Coen [Tue, 4 May 2010 16:40:26 +0000 (16:40 +0000)]
Regular expressions.
Ferruccio Guidi [Wed, 21 Apr 2010 09:00:04 +0000 (09:00 +0000)]
new dependences
From: fguidi <fguidi@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Andrea Asperti [Mon, 19 Apr 2010 09:47:02 +0000 (09:47 +0000)]
Elimination of recursive inductive types leads to looping.
ELimnation of singleton types gives problems with negation.
From: asperti <asperti@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Andrea Asperti [Mon, 19 Apr 2010 09:44:21 +0000 (09:44 +0000)]
alpha_eq instead of pervasives.compare
From: asperti <asperti@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Enrico Tassi [Thu, 15 Apr 2010 14:02:02 +0000 (14:02 +0000)]
bool_ext on 'o' not on 'Prop' (they are convertible, but discrimination
trees do not compare up to conversion)
From: tassi <tassi@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Claudio Sacerdoti Coen [Wed, 14 Apr 2010 15:47:51 +0000 (15:47 +0000)]
...
From: sacerdot <sacerdot@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Claudio Sacerdoti Coen [Wed, 14 Apr 2010 14:06:35 +0000 (14:06 +0000)]
...
From: sacerdot <sacerdot@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Claudio Sacerdoti Coen [Wed, 14 Apr 2010 13:42:14 +0000 (13:42 +0000)]
Formal points.
From: sacerdot <sacerdot@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Claudio Sacerdoti Coen [Wed, 14 Apr 2010 13:28:53 +0000 (13:28 +0000)]
Some dualization clean-up.
From: sacerdot <sacerdot@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Enrico Tassi [Tue, 13 Apr 2010 19:56:18 +0000 (19:56 +0000)]
fixed makefile
From: tassi <tassi@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Enrico Tassi [Tue, 13 Apr 2010 19:55:18 +0000 (19:55 +0000)]
auto destructs while introducing in the context
From: tassi <tassi@
c2b2084f -9a08-0410-b176-
e24b037a169a >
Enrico Tassi [Tue, 13 Apr 2010 19:54:23 +0000 (19:54 +0000)]
print nobjects (hack with Obj.magic)
From: tassi <tassi@
c2b2084f -9a08-0410-b176-
e24b037a169a >