Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2004-03-23 02:11:41 -0800 (Tue, 23 Mar 2004)
Revision: 5523
Log message:

      !!! WARNING : This commit breaks the .prlb compativility. !!!
      
      !!! This commit makes the "check_status" run about 1.5 times faster !!!
      
      This commit make a major change in how the Term_match_table is imlemented.
      Instead of the hash table at the top only (with linear lookup for subterms)
      this implementation uses the same functional term shape-indexed lookup tables
      at both the top and subterm level. During lookup, this implementation keeps
      an explicit list of "fallback" choices, which makes it easier to return more
      than one match. This implementation is much closer to the one presented
      in the paper submitted to TPHOLs.
      
      This makes a few changes to the semantics of the dT tactic:
      - Previously dT (both elim and intro) would only fall back to another tactic
      if it had the same _term_, now it will fall back to all that have the same
      _pattern_. For example, previously the entries for 'x='y in T, 'a in T and
      'b in T (for a specific T) were all considered separately and at most one
      would be tried, but now when applying the dT to a (t in T), all 3 could be
      tried.
      - Previously, if a pattern had both entires with select argument and entries
      without select argument, then the non-select entries were tried only when dT 0
      was called without the select argument. Now the non-select entries are always
      tried.
      
      This makes a change to the semantics of reduceC as well - now reduceC will try
      _all_ matches (from the most specific to the least specific), not just the most
      specific ones.
      
      The display forms are now handled as a resource, instead of being a "special"
      beast. This may cause the inheritance rules for display forms to change slightly,
      and a few extra "extend" directives might have to be added to compensate.
      

Changes  Path
+1 -1 metaprl/editor/ml/mp.mli
+0 -1 metaprl/editor/ml/mp_version.mli
+6 -3 metaprl/filter/base/filter_magic.ml
+6 -5 metaprl/filter/base/filter_summary.ml
+1 -5 metaprl/filter/base/filter_type.ml
+23 -11 metaprl/filter/filter/filter_parse.ml
+29 -48 metaprl/filter/filter/filter_prog.ml
+0 -1 metaprl/refiner/reflib/Files
+1 -0 metaprl/refiner/reflib/Makefile
+1 -0 metaprl/refiner/reflib/OMakefile
+110 -75 metaprl/refiner/reflib/dform.ml
+24 -12 metaprl/refiner/reflib/dform.mli
Deleted metaprl/refiner/reflib/dform_print.ml
Deleted metaprl/refiner/reflib/dform_print.mli
+288 -543 metaprl/refiner/reflib/term_match_table.ml
+34 -29 metaprl/refiner/reflib/term_match_table.mli
+3 -9 metaprl/refiner/reflib/theory.ml
+0 -5 metaprl/refiner/reflib/theory.mli
+2 -0 metaprl/refiner/refsig/term_shape_sig.ml
+1 -1 metaprl/support/shell/display_term.ml
+1 -1 metaprl/support/shell/display_term.mli
+0 -2 metaprl/support/shell/mptop.ml
+0 -11 metaprl/support/shell/package_info.ml
+1 -3 metaprl/support/shell/package_sig.mlz
+0 -1 metaprl/support/shell/proof_edit.ml
+1 -2 metaprl/support/shell/proof_edit.mli
+2 -11 metaprl/support/shell/shell.ml
+1 -1 metaprl/support/shell/shell_package.ml
+1 -1 metaprl/support/shell/shell_root.ml
+1 -2 metaprl/support/shell/shell_sig.mlz
+0 -1 metaprl/support/shell/shell_state.ml
+14 -14 metaprl/support/tactics/auto_tactic.ml
+43 -121 metaprl/support/tactics/dtactic.ml
+2 -3 metaprl/support/tactics/simp_typeinf.ml
+2 -3 metaprl/support/tactics/top_conversionals.ml
+0 -7 metaprl/support/tactics/top_tacticals.ml
+0 -1 metaprl/support/tactics/top_tacticals.mli
+4 -5 metaprl/support/tactics/typeinf.ml
+4 -3 metaprl/tactics/proof/proof_boot.ml
+3 -10 metaprl/tactics/proof/proof_term_boot.ml
+10 -10 metaprl/tactics/proof/tactic_boot.ml
+7 -7 metaprl/tactics/proof/tactic_boot_sig.ml
+2 -6 metaprl/tactics/proof/tacticals_boot.ml
+1 -1 metaprl/theories/experimental/compile/m_closure.ml
+1 -1 metaprl/theories/experimental/compile/m_cps.ml
+1 -1 metaprl/theories/experimental/compile/m_dead.ml
+1 -1 metaprl/theories/experimental/compile/m_ir_ast.ml
+1 -1 metaprl/theories/experimental/compile/m_post_parsing.ml
+1 -1 metaprl/theories/experimental/compile/m_prog.ml
+1 -2 metaprl/theories/experimental/compile/m_util.ml
+0 -1 metaprl/theories/experimental/compile/m_util.mli
+2 -2 metaprl/theories/experimental/compile/m_x86_opt.ml
+1 -1 metaprl/theories/experimental/compile/m_x86_spill.ml
+1 -1 metaprl/theories/experimental/unity/unity_theory.ml
+1 -2 metaprl/theories/experimental/unity/unity_util.ml
+0 -1 metaprl/theories/experimental/unity/unity_util.mli
+958 -1290 metaprl/theories/itt/itt_antiquotient.prla
+14 -33 metaprl/theories/itt/itt_bisect.ml
+5 -7 metaprl/theories/itt/itt_disect.ml
+15 -33 metaprl/theories/itt/itt_esquash.ml
+17 -0 metaprl/theories/itt/itt_field2.ml
+5682 -19578 metaprl/theories/itt/itt_field2.prla
+11 -31 metaprl/theories/itt/itt_fun.ml
+12309 -30104 metaprl/theories/itt/itt_group.prla
+4 -4 metaprl/theories/itt/itt_int_base.ml
+3 -2 metaprl/theories/itt/itt_logic.ml
+1 -3 metaprl/theories/itt/itt_quotient.ml
+18 -3 metaprl/theories/itt/itt_rat.ml
+9060 -11602 metaprl/theories/itt/itt_rat.prla
+4 -4 metaprl/theories/itt/itt_record.ml
+11 -26 metaprl/theories/itt/itt_set.ml
+801 -1038 metaprl/theories/itt/itt_set.prla
+1 -1 mpcompiler/mmc/arch/x86/mmc_x86_frame.ml
+1 -1 mpcompiler/mmc/core/mmc_core_cps.ml
+1 -1 mpcompiler/mmc/core/mmc_core_name.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_erase.ml
+1 -1 mpcompiler/mmc/core/mmc_core_type_util.ml
+1 -2 mpcompiler/mmc/core/mmc_core_util.ml
+0 -1 mpcompiler/mmc/core/mmc_core_util.mli