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.
Claudio Sacerdoti Coen [Fri, 5 Jun 2009 08:56:17 +0000 (08:56 +0000)]
The kernel _must_ check the correctness of the height since the reduction
machine never tries to reduce terms whose height is 0. Thus, if the
declared height is 0, the height is no longer an optimization!
Ferruccio Guidi [Thu, 4 Jun 2009 18:41:36 +0000 (18:41 +0000)]
syntax error fixed :(
Ferruccio Guidi [Thu, 4 Jun 2009 18:35:24 +0000 (18:35 +0000)]
- doubleTypeInference: we check for unreferenced letins in the inferred type also after beta-reduction because beta-reduction can cause unreferenced letins
- procedural: bugfix in the use of inner types, the expected type was sometimes used in place of the inferred type; context cleaning is now disabled because the clear tactics are not generated; debugging mode is now activated
nat/ord.ma is now fully reconstructed :)
denes [Thu, 4 Jun 2009 13:57:56 +0000 (13:57 +0000)]
First pretty printing functions
Enrico Tassi [Thu, 4 Jun 2009 10:19:04 +0000 (10:19 +0000)]
minor changes here and there. We extend fo-unification with
(X ...) =?= (f ...) --> X := f
Enrico Tassi [Thu, 4 Jun 2009 10:18:12 +0000 (10:18 +0000)]
comments
Enrico Tassi [Thu, 4 Jun 2009 09:52:15 +0000 (09:52 +0000)]
better type for comparison and implementation of KBO orderings
Enrico Tassi [Thu, 4 Jun 2009 08:09:31 +0000 (08:09 +0000)]
more functors
Ferruccio Guidi [Wed, 3 Jun 2009 20:20:11 +0000 (20:20 +0000)]
- boxPp: added missing spaces
- core_notation: bug fix in the input notation for congruent: we added term 90 after \sub
- library/nat/permutation.ma: added input notation for transpose and fixed term precedence in its output notation
- library/Makefile: compilation of single files re-enabled.
The syntax for compiling file.ma is is "make file.mo" and "make file.mo.opt"
now nat/congruence.ma and nat/permutation.ma are fully reconstructed :)
Wilmer Ricciotti [Wed, 3 Jun 2009 16:47:25 +0000 (16:47 +0000)]
Update, using induction/inversion.
Enrico Tassi [Wed, 3 Jun 2009 15:37:06 +0000 (15:37 +0000)]
functorial abstraction over term blobs
Andrea Asperti [Wed, 3 Jun 2009 14:42:12 +0000 (14:42 +0000)]
not_to_not
Claudio Sacerdoti Coen [Wed, 3 Jun 2009 08:57:56 +0000 (08:57 +0000)]
New test for NG notation.
Claudio Sacerdoti Coen [Wed, 3 Jun 2009 08:56:58 +0000 (08:56 +0000)]
Huge commit with several changes:
1) CicNotationPres.render: type changed to make it more general (no
dependency on the Hashtbl) and URI/REFERENCE agnostic.
A compatibility function CicNotationPres.lookup_uri is provided to
easily map the (old) Hashtbl to the (new) lookup function.
2) user interface partially changed to render NG objects in the CicBrowser
and to follow NG hyperlinks
3) New CicNotationPt entries NRef (similar to Uri) and NRefPattern
(similar to UriPattern) to avoid hijacking the old Uris (actually,
uris + xpointers) to also hold new references.
This allows to properly implement notation (for NG) and to properly
handle hyperlinks.
4) all remaining Warnings for unused variables fixed (in some way or
another, hopefully the correct one)
5) GrafiteEngine, NQed: the height of an object is now recomputed just
before putting it in the environment. This fixes all the bugs related
to reduction.
6) GrafiteParser/LexiconEngine: both old URIs and new references are now
allowed in NG terms and in notations
7) ng_cic_content: rendering functions now return an "id |-> reference" table
to correctly implement MathML hrefs
8) NReference: new compare function
9) NCicUntrusted: new height_of_obj_kind function (to be used in GrafiteEngine)
10) OCic2NCic: new reference_of_oxuri function to map old uris + xpointers
into new references
11) bug fixed: after the commit by Enrico that starts using the extensible
PTS, the old-to-new objects translations used to map Type into "Type" which
was not declared. Type is now mapped into Type[0] and Type (as a "notation")
is now a synonim of Type[0] (only during parsing for now)
12) bug fixed: after the commit by Enrico that cleans up terms for
alpha-conversion and dummy products, the test in NCicTypeChecker that
verifies the consistency of left parameters in constructor --- that used
to do that NOT up to alpha-conversion --- used to fail when dummy products
were found. The test is now relaxed to include alpha-conversion.
13) bug fixed: NCicTypeChecker did not verify that a .dec reference pointed to
an axiom and that a .def reference did not point to an axiom. Fixed.
denes [Mon, 1 Jun 2009 16:36:42 +0000 (16:36 +0000)]
First implementation of unification on foterms
denes [Mon, 1 Jun 2009 15:32:18 +0000 (15:32 +0000)]
First functions on substitutions for unification
Enrico Tassi [Mon, 1 Jun 2009 13:49:20 +0000 (13:49 +0000)]
added a snapshot of comparison
Andrea Asperti [Mon, 1 Jun 2009 12:23:46 +0000 (12:23 +0000)]
This works for me
Enrico Tassi [Mon, 1 Jun 2009 11:57:04 +0000 (11:57 +0000)]
we rewrite the paramodulation code!
Wilmer Ricciotti [Fri, 29 May 2009 15:08:59 +0000 (15:08 +0000)]
POPLmark part 1a using the de Bruijn encoding.
Ferruccio Guidi [Fri, 29 May 2009 14:26:50 +0000 (14:26 +0000)]
- cicNotationParser: added extra space to TeX control sequences accordind to previous commit of cicNotationLexer
- core_notation: bugfix in the notation for exp
- library/nat/congruence.ma: notation for "congruent" moved to core_notation
now nat/exp.ma is fully reconstructed :)
Ferruccio Guidi [Thu, 28 May 2009 18:15:13 +0000 (18:15 +0000)]
Procedural: higher-order unification needs a lot of hints !!
files fully reconstructed today:
nat/lt_arith.ma nat/div_and_mod.ma Z/plus.ma Z/orders.ma
Ferruccio Guidi [Thu, 28 May 2009 17:17:29 +0000 (17:17 +0000)]
- cicInspect: relevant nodes count updated: letin nodes are not relevant
- Procedural: reflexivity is now supported
- grafiteAst: boolean flag for include to tag inclusion of a source file. This command is relevant for .ma generation only. [ the source file of a .mma is not included in the generated .ma ]
- cicNotationLexer: unexpanded TeX macro symbols are now encoded with an extra space at the end. This is consistent with the concept of TeX sequence and fixes a bug in the renering of these symbols. The space is needed for reparsing!
Ferruccio Guidi [Wed, 27 May 2009 18:44:41 +0000 (18:44 +0000)]
Procedural: bugfix in the generation of intros for letin: the bodies and types of the actual letin and of the inferred letin must be equal upto alpha
now nat/minus.ma and nat/minimization.ma are fully reconstructed :)
Ferruccio Guidi [Wed, 27 May 2009 17:16:31 +0000 (17:16 +0000)]
- Procedural: we specify more unifiers for apply to help higher-order unification
- cicNotationPp: bugfix in the notation for Meta and ImplicitPattern
- transcript: grafite lexer/parser updated
Claudio Sacerdoti Coen [Wed, 27 May 2009 08:49:30 +0000 (08:49 +0000)]
Basic support for interpretations for NG:
1) only interpretations for old objects are used
(i.e. no way yet to declare a new interpretation on a new object)
2) only interpretations for constants (no inductive definitions/constructors)
since we have no faithful embedding of new references into old URIs
3) no support for backtracking (I think)
Andrea Asperti [Wed, 27 May 2009 06:38:45 +0000 (06:38 +0000)]
Avoiding to filter the application of congruence equations
due to a couple of cases in "didactics" where auto is used
instead of reflexivity.
Claudio Sacerdoti Coen [Tue, 26 May 2009 11:52:47 +0000 (11:52 +0000)]
...
Claudio Sacerdoti Coen [Tue, 26 May 2009 11:45:48 +0000 (11:45 +0000)]
...
Andrea Asperti [Tue, 26 May 2009 10:47:42 +0000 (10:47 +0000)]
removed a call to autobatch.
Enrico Tassi [Mon, 25 May 2009 15:39:26 +0000 (15:39 +0000)]
nasty change in the lexer/parser:
- identifiers can begin with _
- interpretations use ? for implicits instead of _
possible problems:
- _foo is not anymore: SYMBOL(_) IDENT(foo)
put a space to obtain the old token stream
Ferruccio Guidi [Fri, 22 May 2009 12:17:28 +0000 (12:17 +0000)]
bugfix in the output notation for eq
Andrea Asperti [Fri, 22 May 2009 11:15:56 +0000 (11:15 +0000)]
Pruning candidates in the applicative case for equalities.
Ferruccio Guidi [Thu, 21 May 2009 19:04:29 +0000 (19:04 +0000)]
Procedural: we use the expected type rather than the inferred type when we perform a cut to keep the goal in sync with the expected type.
we try to beta-reduce the elimination pattern when it does not match the goal/expected type
now nat/compare.ma and Z/z.ma are fully reconstructed :)
Ferruccio Guidi [Thu, 21 May 2009 12:45:14 +0000 (12:45 +0000)]
- cicUtil: is_sober now detects non-positive rels.
- PropceduralOptimizer: bug fix in critical step detection
now decidable_kit/streicher.ma is fully reconstructed :)
Andrea Asperti [Thu, 21 May 2009 11:42:28 +0000 (11:42 +0000)]
autobatch -> autobatch by
Ferruccio Guidi [Wed, 20 May 2009 20:44:49 +0000 (20:44 +0000)]
we catch the refiner errors in the critical step and fall back to the non-criticall version (this is just for debugging)
bug-fix in elimination recognition euristics
now nat/orders.ma and nat/times.ma are fully reconstructed :)
Andrea Asperti [Wed, 20 May 2009 15:35:12 +0000 (15:35 +0000)]
Removed a silly type check
Enrico Tassi [Tue, 19 May 2009 14:38:16 +0000 (14:38 +0000)]
...
Andrea Asperti [Tue, 19 May 2009 14:34:01 +0000 (14:34 +0000)]
NotEq is now considered as a negative Eq atom
Enrico Tassi [Tue, 19 May 2009 10:07:50 +0000 (10:07 +0000)]
regenerated
Enrico Tassi [Tue, 19 May 2009 10:07:42 +0000 (10:07 +0000)]
fixed generation of horn clauses, negated atoms are hypotheses
Enrico Tassi [Tue, 19 May 2009 09:42:47 +0000 (09:42 +0000)]
some horn+equality problems
Claudio Sacerdoti Coen [Mon, 18 May 2009 22:08:17 +0000 (22:08 +0000)]
removed byte queries
Enrico Tassi [Mon, 18 May 2009 15:28:48 +0000 (15:28 +0000)]
removed useless function
Enrico Tassi [Mon, 18 May 2009 15:25:52 +0000 (15:25 +0000)]
in the new kernel you can type Type[i] to mean Type_i, and Type is interpreted as
Type[0]. The same holds for CProp.
tests/ng_pts.ma defines some sorts, you may want to include it
Enrico Tassi [Mon, 18 May 2009 15:04:07 +0000 (15:04 +0000)]
nothing special
Claudio Sacerdoti Coen [Mon, 18 May 2009 11:59:53 +0000 (11:59 +0000)]
1) GrafiteAst.NEval => GrafiteAst.NReduce
2) new tactic "nnormalize" implemented
3) "ngeneralize" now uses "wanted" when no term is selected
(so that it is possible to use ngeneralize to move an
hypothesis down)
4) new syntax for non punctuational tinycals was missing
Claudio Sacerdoti Coen [Mon, 18 May 2009 11:57:50 +0000 (11:57 +0000)]
1) new tactic normalize (low-level function implemented in
nCicTacReduction)
2) the select tactic used to generate fresh metavariables by unifying the
"wanted" part of the pattern in a root where "wanted" did not occur.
Those metavariables are now removed in that case
Claudio Sacerdoti Coen [Mon, 18 May 2009 11:54:20 +0000 (11:54 +0000)]
1) order of processing of case branches reverted (to generate metas in
left-to-right order)
2) metas generated by eat_prods are now re-ordered so that they occur
in left-to-right order
Claudio Sacerdoti Coen [Sun, 17 May 2009 19:13:21 +0000 (19:13 +0000)]
maxmeta implemented
Claudio Sacerdoti Coen [Sun, 17 May 2009 19:13:03 +0000 (19:13 +0000)]
maxmeta function to return the heighest meta used so far
Claudio Sacerdoti Coen [Sun, 17 May 2009 19:12:33 +0000 (19:12 +0000)]
alpha_eq exported
Claudio Sacerdoti Coen [Sun, 17 May 2009 19:12:15 +0000 (19:12 +0000)]
alpha_eq defined and exported
Claudio Sacerdoti Coen [Sun, 17 May 2009 19:11:41 +0000 (19:11 +0000)]
efficiency improvement (buffers are now used everywhere)
Claudio Sacerdoti Coen [Sun, 17 May 2009 19:11:00 +0000 (19:11 +0000)]
...