Claudio Sacerdoti Coen [Tue, 23 Jun 2009 11:46:16 +0000 (11:46 +0000)]
1) NCicTypechecker.typecheck_obj removed, since it did not add to the
environment (and thus all objects were type-checked at least twice)
2) NCicEnvironment.check_and_add_obj that checks and add an object
3) added NCicEnvironment.invalidate_obj that invalidate all objects after a
given one (that comprised)
4) NCicLibrary.add_obj now calls the NCicEnvironment.check_and_add_obj;
NCicLibrary.time_travel now calls NCicEnvironment.invalidate_obj
Note: it could happen that an object is in the environment but not in the
library and thus it could not be invalidated by time_travel.
In practice, this is safe anyway and it will never happen.
denes [Tue, 23 Jun 2009 10:30:55 +0000 (10:30 +0000)]
Fixed nasty bug in maxvar updating
Claudio Sacerdoti Coen [Tue, 23 Jun 2009 10:23:59 +0000 (10:23 +0000)]
- Bug fixed: removed URIs were not removed from the dependencies DB.
- The assert failure has been removed since in some situations (????) an
empty dir (no new objects) was not created and thus it was normal that it
was not removed. TO BE BETTER UNDERSTOOD
Enrico Tassi [Tue, 23 Jun 2009 08:07:22 +0000 (08:07 +0000)]
removed problem not in UEQ
Ferruccio Guidi [Mon, 22 Jun 2009 22:53:12 +0000 (22:53 +0000)]
- nodes count is now working for aut and meta
- bugfix in autLexer
- comment fix in aut
denes [Mon, 22 Jun 2009 17:12:49 +0000 (17:12 +0000)]
Added more precise time information
denes [Mon, 22 Jun 2009 17:03:32 +0000 (17:03 +0000)]
Added problems from CASC 208
denes [Mon, 22 Jun 2009 16:58:17 +0000 (16:58 +0000)]
Regenerated problems with corrected tptp2grafite
denes [Mon, 22 Jun 2009 16:51:14 +0000 (16:51 +0000)]
Corrected proof visiting (topological sort)
denes [Mon, 22 Jun 2009 16:50:37 +0000 (16:50 +0000)]
Small debugging in tptp2grafite
Wilmer Ricciotti [Sun, 21 Jun 2009 18:32:22 +0000 (18:32 +0000)]
Added injective compose
Ferruccio Guidi [Sun, 21 Jun 2009 08:21:50 +0000 (08:21 +0000)]
- cicNotationPp: bugfix in record syntax
- lambda-delta: version update
Wilmer Ricciotti [Sat, 20 Jun 2009 16:53:44 +0000 (16:53 +0000)]
Some notation and additional lemmata.
Claudio Sacerdoti Coen [Sat, 20 Jun 2009 13:47:57 +0000 (13:47 +0000)]
Debugging
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 15:49:45 +0000 (15:49 +0000)]
"matitaclean all" ported to NG
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 15:43:10 +0000 (15:43 +0000)]
Invert dependencies between baseuris (files) are now stored in the db.
Hence decompilation is now fully correct (???).
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 14:59:35 +0000 (14:59 +0000)]
Bug fixed: refreshing of uris for the db.
Wilmer Ricciotti [Fri, 19 Jun 2009 14:53:57 +0000 (14:53 +0000)]
More improvements.
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 14:20:00 +0000 (14:20 +0000)]
The global db is now updated during decompilation.
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 14:05:18 +0000 (14:05 +0000)]
Persistent db (to lookup names in the library) inefficiently implemented as
an associative list which is:
1) loaded from disk and stored in memory when matita starts
2) updated every time a file is saved
Still to be implemented: decompilation.
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 12:42:05 +0000 (12:42 +0000)]
NG decompilation is now activated. However, it is called from the old
decompilation that cannot detect when a NG-only file A is used by another
NG-only file B. As a consequence, decompiling A does not decompile B too.
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 10:16:23 +0000 (10:16 +0000)]
Estatus finally merged into the global status using inheritance.
Major code simplification everywhere :-)
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 08:40:48 +0000 (08:40 +0000)]
Useless GrafiteTypes.get_baseuri removed.
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 08:34:19 +0000 (08:34 +0000)]
More statuses converted to objects.
Claudio Sacerdoti Coen [Fri, 19 Jun 2009 07:21:49 +0000 (07:21 +0000)]
Good:
1) all set_* methods are now polymorphic
2) no more :> coercions
3) no more technical class types
Bad:
1) some polymorphic set_* methods have explicit row types that are
problematic when extending another class in another file. The
row types should just be #classname, but ocaml rejects them that
way.
Enrico Tassi [Thu, 18 Jun 2009 17:26:41 +0000 (17:26 +0000)]
debug pps removed
Enrico Tassi [Thu, 18 Jun 2009 17:26:27 +0000 (17:26 +0000)]
better exception handling
Enrico Tassi [Thu, 18 Jun 2009 16:58:39 +0000 (16:58 +0000)]
proof patching!
Claudio Sacerdoti Coen [Thu, 18 Jun 2009 16:48:35 +0000 (16:48 +0000)]
Objects are now used to represent also the tactic status.
Cool (but error messages can be bad).
denes [Thu, 18 Jun 2009 15:26:24 +0000 (15:26 +0000)]
Added ntry and nassumption tactics
Enrico Tassi [Thu, 18 Jun 2009 14:46:17 +0000 (14:46 +0000)]
callbacks were taking in input a status bu were not using them.
thanks to the new #type for statuses this was a problem, and Obj.magic
was required to fix them. Removed both the dummy parameter and the
unsafe cast
denes [Thu, 18 Jun 2009 11:43:51 +0000 (11:43 +0000)]
Fixed stupid path
denes [Thu, 18 Jun 2009 11:23:18 +0000 (11:23 +0000)]
Added script useful for running benchmarks
denes [Thu, 18 Jun 2009 11:01:08 +0000 (11:01 +0000)]
Changed parenthesis to optional around letin ident (and type)
denes [Thu, 18 Jun 2009 10:59:22 +0000 (10:59 +0000)]
Fixed wrong types in proof terms
Claudio Sacerdoti Coen [Thu, 18 Jun 2009 09:17:53 +0000 (09:17 +0000)]
Stricter type: the type now shows that disambiguation only alter the lexicon.
In this way we are forced to manually set the content of the object in place of
setting the whole object, that leads to information loss since in the meanwhile
new commands may have altered the rest of the state.
Claudio Sacerdoti Coen [Thu, 18 Jun 2009 09:07:37 +0000 (09:07 +0000)]
1) grafiteWalker removed
2) ncommands and commands are now two distinct syntactic entries
3) NEstatus.status and LexiconEngine.status are now objects
Enrico Tassi [Wed, 17 Jun 2009 13:35:12 +0000 (13:35 +0000)]
proof reconstruction almost OK
Claudio Sacerdoti Coen [Wed, 17 Jun 2009 11:47:59 +0000 (11:47 +0000)]
Initial implementation of statuses using objects in place of nested records.
So nicer!
The only major problem is that the NCicLibrary functor does not return a
function #status as 'status -> 'status, but a function status -> status.
Thus I have to painfully wrap NCicLibrary.Realizer(...).require in NRstatus.
TO REMEMBER:
- every function that works on a data type that used to be put in the status
(e.g. a db) must now work on a functional class with just two members
(db and set_db). Moreover, every function in the module must work on the
open variants of the class type, i.e. #status
denes [Wed, 17 Jun 2009 08:47:34 +0000 (08:47 +0000)]
Added optionnal one pass simplification (instead of keep_simplified)
Fix for varlists (we traverse the term to collect occuring variables)
Enrico Tassi [Tue, 16 Jun 2009 23:07:35 +0000 (23:07 +0000)]
first proof reconstruction attempt, still bugged since it
does all steps in a forward fashion
Claudio Sacerdoti Coen [Tue, 16 Jun 2009 23:00:56 +0000 (23:00 +0000)]
1) unification hint now takes NG terms (as it should have been from the very
beginning)
2) refresh_uris_in_term is now passed to the constructor of the
existential/universal data type in NCicLibrary
3) URIs are now refreshed in unification hint data
Claudio Sacerdoti Coen [Tue, 16 Jun 2009 22:35:03 +0000 (22:35 +0000)]
1) NCicLibrary (which is untrusted) moved after NCicUntrusted.
NCicLibrary registers get_obj to NCicEnvironemnt (and to NCicPp)
2) URIs are now refreshed when objects are included from disk
Observation: even NCicPp is untrusted. Thus its implementation should be put
at the end and some references set to one early module. Which one? Two
choices: NCic or NCicPp (two modules, one with the implementation follows).
Could the same be done for NCicLibrary too in order to bring back the explicit
dependency of NCicEnvironment over NCicLibrary? [ In that case, remember to
change back the exception caught by GrafiteDisambiguate ]
Claudio Sacerdoti Coen [Tue, 16 Jun 2009 21:58:28 +0000 (21:58 +0000)]
Implementation of existential type improved (more strict checking).
Enrico Tassi [Tue, 16 Jun 2009 21:57:36 +0000 (21:57 +0000)]
avoid fixing non-recursive terms
Enrico Tassi [Tue, 16 Jun 2009 18:28:17 +0000 (18:28 +0000)]
we fix recursive object reference with the correct height
just before adding it to the library
Claudio Sacerdoti Coen [Tue, 16 Jun 2009 17:37:05 +0000 (17:37 +0000)]
FIX OF THE PREVIOUS EXPERIMENTAL COMMIT:
Instead of serializing closures (of type status -> status), we now
serialize data. This is achieved by implementing an existential type
NCicLibrary.Serializer(struct type status end).obj
whose semantics is "\exists 'a. 'a -> status -> status"
and by putting in the dump a list of these existential types.
The current implementation is the type-unsafe one based internally on Obj.magic.
However, the interface is (should be?) type-safe.
Other type-safe implementations could be derived by the ocaml m.l. thread on
existential types. In particular, I remember implementations via:
- references
- functors
- exceptions
- impredicative encoding via polymorphic methods
This fix allow to change the Matita code without invalidating the library.
(Critical) things still to be done:
- decompilation
- refreshment of URIs
Ferruccio Guidi [Tue, 16 Jun 2009 14:20:34 +0000 (14:20 +0000)]
we corrected some reduction bugs about renaming.
The grundlagen is now fully typechecked :)
Ferruccio Guidi [Mon, 15 Jun 2009 21:15:57 +0000 (21:15 +0000)]
we removed some old code and fixed a reduction bug: two instances fo the
same constant applied to a different number of arguments may be convertible
We now check grundlagen up to item 109 :) (with naive sort inclusion :( puah)
Enrico Tassi [Mon, 15 Jun 2009 16:41:47 +0000 (16:41 +0000)]
EXPERIMENTAL COMMIT (part B, by CSC :-):
- objects are now individually serialized too
(but never decompiled)
CRITICAL OBSERVATION:
- closures in ocaml are pointers in the binary, hence the library
must be decompiled at every single change in matita's code
Enrico Tassi [Mon, 15 Jun 2009 16:22:18 +0000 (16:22 +0000)]
EXPERIMENTAL COMMIT (by CSC,actuall :-)
This commit partially implements (in NCicLibrary) serialization for NG.
It creates several .matita/matita/.../foo.ng files that are ocaml dumps
of closures (NRstatus.refiner_status -> NRstatus.refiner_status) to be applied
to the current status.
The test tests/ng_includeB.ma shows how unification hints are preserved.
TODO:
a) decompilation is implemented in NCicLibrary, but not called anywhere
b) serialization of objects (and "query" db (and old to new cache??)) not
implemented yet
c) objects are removed from the library, but not from the environment!
Enrico Tassi [Mon, 15 Jun 2009 11:18:02 +0000 (11:18 +0000)]
...
Enrico Tassi [Mon, 15 Jun 2009 11:14:48 +0000 (11:14 +0000)]
added TODO list
Enrico Tassi [Mon, 15 Jun 2009 11:04:24 +0000 (11:04 +0000)]
huge commit regarding the grafite_status:
- in the ng_status component it embeds the lexicon status
- the lexicon status is not passed around alone anymore
- coercions/hints for the ng system are no longer imperative
(are in the e (for external) status of the tac_status
- ng_refiner does not take in input a look_for_coercions function
but an aggregate type "rdb" comprising hints and coercions
(and empty one is passed to disable hints/coercions)
functionalities losses:
- old (generated) hint are no longer translated on the fly
- old coercions are translated in a best effort way
(no universes calculation)
Enrico Tassi [Mon, 15 Jun 2009 09:41:44 +0000 (09:41 +0000)]
part of last commit
Enrico Tassi [Mon, 15 Jun 2009 09:36:46 +0000 (09:36 +0000)]
tacticals are really tactics now, they have an AST at the same level of
tactics. Parser/engine fixed accordingly. This allowed a better TPTP
exportation
Ferruccio Guidi [Sat, 13 Jun 2009 19:00:52 +0000 (19:00 +0000)]
we removed some coercion detours and we added some coercions we really would like to see
denes [Fri, 12 Jun 2009 16:16:11 +0000 (16:16 +0000)]
Implemented keep_simplified.
If a candidate for forward inference is discarded, another is selected
Claudio Sacerdoti Coen [Fri, 12 Jun 2009 13:46:40 +0000 (13:46 +0000)]
ocaml sucks...
Claudio Sacerdoti Coen [Fri, 12 Jun 2009 13:07:00 +0000 (13:07 +0000)]
...
Enrico Tassi [Fri, 12 Jun 2009 13:04:13 +0000 (13:04 +0000)]
-ng implemented
Andrea Asperti [Fri, 12 Jun 2009 12:33:45 +0000 (12:33 +0000)]
Added a new keep_simplified function
Andrea Asperti [Fri, 12 Jun 2009 11:21:13 +0000 (11:21 +0000)]
Renamed forward_simplify into simplify and backward_simplify
into simplify_goal
denes [Thu, 11 Jun 2009 22:52:38 +0000 (22:52 +0000)]
Active goals are now demodulated after selecting a positive clause.
Implemented OrderedSet for passive clauses.
Selection is now based on weight (fairness condition to be added).
Ferruccio Guidi [Thu, 11 Jun 2009 22:02:51 +0000 (22:02 +0000)]
- applyTransformation: bugfix in the rendering of records
now algebra/monoids.ma is fully reconstructed :)
Enrico Tassi [Thu, 11 Jun 2009 13:57:41 +0000 (13:57 +0000)]
content2pres for the new cic fixed
Ferruccio Guidi [Thu, 11 Jun 2009 12:59:35 +0000 (12:59 +0000)]
- some depend files fixed
- matitacLib: we peform a garbage collection after compiling every file instead of just .mma (let's see the times)
- transcript: support for "cr" inline param completed
- procedural: now record are supported
the records of logic/cprop_coonectives.ma are now reconstructed :)
logic higher_order_defs list nat Z Q are now fully reconstructed :))
Ferruccio Guidi [Wed, 10 Jun 2009 20:19:42 +0000 (20:19 +0000)]
- library/list/list.ma: unused code commented
- proceduralClassify type argument are no longer critical: let's see how it goes
- acic2Procedural: the inline parameter Debug now works
- procedural2: we remove the conversions before first order relexivities (exp. to avoid conversion to []=[] in list/list.ma [does not work because []=[] in an open term since the equality type is unspecified]). so we we strengthen reflexivity (see below)
- setoids: now reflexivity is retried after whd if it fails in the first place.
- grafiteAst: detection of convertible rewrites is now optional and activated with the inline parameter "cr". nat/factorial2 is very slow without rewrites
transcript: we now avoid the generation of dupplicated inlines (mistakely generated by the grafite parser [this can not be avoided without a better syntax for .ma scripts])
now list/list.ma is fully reconstructed :)
nat/factorial2.ma takes long to be produced 22m31. Some conversion is slowing the process. nat/bertrand.ma also: we are waiting for it now :(
Enrico Tassi [Wed, 10 Jun 2009 16:43:48 +0000 (16:43 +0000)]
1) added simplification of actives w.r.t. selected
2) added simple main loop (look at the comment for a possible optimization)
Enrico Tassi [Wed, 10 Jun 2009 13:38:08 +0000 (13:38 +0000)]
right inference step completed
Enrico Tassi [Wed, 10 Jun 2009 11:39:26 +0000 (11:39 +0000)]
new function filter_map_acc
denes [Wed, 10 Jun 2009 08:46:55 +0000 (08:46 +0000)]
Extended the equality case to non ground terms
Ferruccio Guidi [Tue, 9 Jun 2009 17:22:52 +0000 (17:22 +0000)]
- Procedural: more support for the Debug inline option (does not work yet)
- transcript: now we can process a given subset so the source files
- termContentPres: bugfix in the syntax of letrec, a space was missing :(
now nat/generic_iter_p.ma is fully reconstructed :) (thx Claudio)
Claudio Sacerdoti Coen [Tue, 9 Jun 2009 16:59:24 +0000 (16:59 +0000)]
Debugging code removed.
Claudio Sacerdoti Coen [Tue, 9 Jun 2009 16:37:54 +0000 (16:37 +0000)]
Temporary (and partially broken) patch for Ferruccio: I duplicate
\Pi abstractions in let ... rec definitions in order to make the system
infer the same names. However, it could be infer a -> in place of a \forall.
Enrico Tassi [Tue, 9 Jun 2009 16:22:41 +0000 (16:22 +0000)]
almost complete superposition right step
Enrico Tassi [Tue, 9 Jun 2009 15:09:42 +0000 (15:09 +0000)]
snapshot
Enrico Tassi [Tue, 9 Jun 2009 15:01:30 +0000 (15:01 +0000)]
see the previous commit
Enrico Tassi [Tue, 9 Jun 2009 14:56:01 +0000 (14:56 +0000)]
termAcicContent is logic independent (despite its name) thus it
needs also term_of_nref
denes [Tue, 9 Jun 2009 13:31:02 +0000 (13:31 +0000)]
Optimized weigths comparison, removed normalization
Enrico Tassi [Tue, 9 Jun 2009 13:17:31 +0000 (13:17 +0000)]
snaphost: supright almost done
Enrico Tassi [Tue, 9 Jun 2009 13:17:14 +0000 (13:17 +0000)]
...
Enrico Tassi [Tue, 9 Jun 2009 13:16:05 +0000 (13:16 +0000)]
...
denes [Tue, 9 Jun 2009 13:15:58 +0000 (13:15 +0000)]
Implemented substitution application and concatenation
Enrico Tassi [Tue, 9 Jun 2009 13:15:18 +0000 (13:15 +0000)]
...
Enrico Tassi [Tue, 9 Jun 2009 09:54:56 +0000 (09:54 +0000)]
fixed metas
Enrico Tassi [Tue, 9 Jun 2009 09:54:36 +0000 (09:54 +0000)]
fixed building
Enrico Tassi [Mon, 8 Jun 2009 18:56:48 +0000 (18:56 +0000)]
...
Enrico Tassi [Mon, 8 Jun 2009 17:27:16 +0000 (17:27 +0000)]
a skeleton of supright
Enrico Tassi [Mon, 8 Jun 2009 16:34:39 +0000 (16:34 +0000)]
some more functors and a nice higher-order all_positions iterator
Enrico Tassi [Mon, 8 Jun 2009 13:04:29 +0000 (13:04 +0000)]
added META for ng_paramodulation
Claudio Sacerdoti Coen [Sat, 6 Jun 2009 16:45:12 +0000 (16:45 +0000)]
Previous commit reverted, as explained in that log.
Claudio Sacerdoti Coen [Sat, 6 Jun 2009 16:43:35 +0000 (16:43 +0000)]
This commit restores the ids_to_father_ids table.
However, after the implementation, I sort of realized that maybe this table
is useless, after all.
Thus I am gonna do my commit and immediately revert it (just to keep the
code in SVN in case of need).
Enrico Tassi [Sat, 6 Jun 2009 08:59:51 +0000 (08:59 +0000)]
some renaming to make ocamlopt happy
Ferruccio Guidi [Fri, 5 Jun 2009 22:23:42 +0000 (22:23 +0000)]
bugfix in Include syntax: it was changed and committed by mistake :(
Ferruccio Guidi [Fri, 5 Jun 2009 22:18:01 +0000 (22:18 +0000)]
- Procedural convertible rewrites in the conclusion are now detected and replaced by change
- grafiteAst: semantics of the Include flag changed: now true means normal include, New Inline flags Coercions, Comments (activated) Debug (not yet)
- library: eq_plus_Zplus moved from Z/times to Z/plus
now Z/plus.ma Z/times.ma are fully reconstructed :)
denes [Fri, 5 Jun 2009 15:33:35 +0000 (15:33 +0000)]
First tests for paramodulation (pretty printer, unification)
Wilmer Ricciotti [Fri, 5 Jun 2009 13:27:14 +0000 (13:27 +0000)]
- replaced part1a/defn with the version based on induction/inversion and deleted
older version
- more minor improvements
denes [Fri, 5 Jun 2009 12:25:06 +0000 (12:25 +0000)]
Fix : wrong exception was catch in apply_subst
Claudio Sacerdoti Coen [Fri, 5 Jun 2009 09:52:20 +0000 (09:52 +0000)]
1) the home button of CicBrowser now works also for NG
2) implemented simple (i.e. no natural language) rendering of NG constants.
Inductive types and (co)recursive definitions are still missing.