Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-03-15 22:44:46 -0800 (Mon, 15 Mar 2004)
Revision: 5461
Log message:

      Adding support for patterns that match _free_ FO variables.
      
      With this commit, any free FO variable in a redex or contractum is taken
      to be a pattern that would match an arbitrary _free_ FO variable. This is
      probably not going to be useful in ITT-like domains, where variables usually
      stand for arbitrary terms (and therefore there is not much difference between
      free FO variables and SO variables), but in programming language domains this
      capability of being able to have patters matching the object-level variables
      should be extremely useful.
      
      On IO, the 'v would still expand into 'v[] _SO_ variable when v is free.
      Therefore, on IO the free _FO_ variables are denoted using the !v syntax.
      
      The new syntax and new rewriting capabilities are not yet used (except in
      the term table, which will now use !v matching) and are not very well tested
      yet.
      

Changes  Path
+2 -0 metaprl/filter/filter/term_grammar.ml
+5 -1 metaprl/refiner/reflib/dform.ml
+1 -4 metaprl/refiner/reflib/term_match_table.ml
+7 -0 metaprl/refiner/refsig/term_meta_sig.ml
+17 -23 metaprl/refiner/rewrite/rewrite.ml
+4 -2 metaprl/refiner/rewrite/rewrite_compile_contractum.ml
+15 -2 metaprl/refiner/rewrite/rewrite_compile_redex.ml
+6 -2 metaprl/refiner/rewrite/rewrite_debug.ml
+16 -2 metaprl/refiner/rewrite/rewrite_match_redex.ml
+6 -1 metaprl/refiner/rewrite/rewrite_types.ml
+19 -15 metaprl/refiner/rewrite/rewrite_util.ml
+4 -0 metaprl/refiner/rewrite/rewrite_util_sig.ml
+24 -11 metaprl/refiner/term_gen/term_meta_gen.ml
+3 -0 metaprl/support/display/base_dform.ml
+0 -2 mpcompiler/mmc/core/mmc_core_type_check.ml