Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-01 15:07:56 -0700 (Sat, 01 Oct 2005)
Revision: 7810
Log message:

      Updated MMC to play nicely with the recently introduced enforcing of the
      Perv!Ignore meta-type for bindings.
      

Changes  Path
+62 -77 mpcompiler/mmc/arch/x86/base/mmc_x86_asm.mli
+2 -2 mpcompiler/mmc/arch/x86/type/mmc_x86_mterm.mli
+3 -3 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.ml
+22 -22 mpcompiler/mmc/arch/x86/type/mmc_x86_sweep.mli
+30 -31 mpcompiler/mmc/core/mmc_core_ast.mli
+2 -2 mpcompiler/mmc/core/mmc_core_closure.ml
+2 -2 mpcompiler/mmc/core/mmc_core_hoist.ml
+2 -2 mpcompiler/mmc/core/mmc_core_hoist.mli
+2 -2 mpcompiler/mmc/core/mmc_core_mterm.mli
+1 -1 mpcompiler/mmc/core/mmc_core_sweep.ml
+22 -22 mpcompiler/mmc/core/mmc_core_sweep.mli
+53 -54 mpcompiler/mmc/core/mmc_core_tast.mli
+2 -2 mpcompiler/mmc/core/mmc_core_typeof.ml
+25 -25 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli
+4 -5 mpcompiler/poplmark/pmc/base/pmc_base_grammar.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 11:46:40 -0700 (Mon, 03 Oct 2005)
Revision: 7816
Log message:

      Use a Map to register extensions.
      This doesn't compile because of type errors (I believe these
      are due to changes wrt Ignore).
      

Changes  Path
+12 -3 mpcompiler/mmc/OMakefile
+3 -2 mpcompiler/mmc/extensions/array/Files
+3 -2 mpcompiler/mmc/extensions/bool/Files
+3 -2 mpcompiler/mmc/extensions/callcc/Files
+3 -2 mpcompiler/mmc/extensions/int/Files
+3 -2 mpcompiler/mmc/extensions/loop/Files
+3 -2 mpcompiler/mmc/extensions/operator/Files
+3 -2 mpcompiler/mmc/extensions/ref/Files
+3 -2 mpcompiler/mmc/extensions/sequence/Files
+3 -2 mpcompiler/mmc/extensions/special/Files
+3 -2 mpcompiler/mmc/extensions/string/Files
+3 -2 mpcompiler/mmc/extensions/tuple/Files
+3 -2 mpcompiler/mmc/extensions/tyexists/Files
+3 -2 mpcompiler/mmc/extensions/unit/Files
+1 -3 mpcompiler/mmc/main/OMakefile

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 11:47:05 -0700 (Mon, 03 Oct 2005)
Revision: 7817
Log message:

      Use a Map to register extensions.
      

Changes  Path
+11 -3 mpcompiler/poplmark/pmc/OMakefile
+1 -3 mpcompiler/poplmark/pmc/main/OMakefile

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 11:47:36 -0700 (Mon, 03 Oct 2005)
Revision: 7818
Log message:

      Ignore .a files.
      

Changes  Path
Properties mpcompiler/util

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 12:16:46 -0700 (Mon, 03 Oct 2005)
Revision: 7819
Log message:

      Skeleton for naive POPLmark solution.
      

Changes  Path
Properties mpcompiler/poplmark/naive
Copied mpcompiler/poplmark/naive/OMakefile
Copied mpcompiler/poplmark/naive/pmn_base_judgment.ml
Copied mpcompiler/poplmark/naive/pmn_base_judgment.mli
Copied mpcompiler/poplmark/naive/pmn_core_tast.ml
Copied mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-03 14:33:57 -0700 (Mon, 03 Oct 2005)
Revision: 7820
Log message:

      Couple more Ignore-related fixed (I have not seen these before because they
      were masked by a buggy mmc_ext_tuple.mli).
      

Changes  Path
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_x86_tuple.ml
+3 -3 mpcompiler/mmc/lir/mmc_lir_closure_elim.ml

Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2005-10-03 15:18:02 -0700 (Mon, 03 Oct 2005)
Revision: 7821
Log message:

      Reverting my last commit, which included some mutable tuple work that was not ready for prime time.
      

Changes  Path
+4 -0 mpcompiler/mmc/extensions/ref/mmc_ext_ref.ml
+2 -2 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml
+8 -90 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.mli

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-03 16:00:33 -0700 (Mon, 03 Oct 2005)
Revision: 7822
Log message:

      Another Ignore fix

Changes  Path
+1 -1 mpcompiler/mmc/extensions/tuple/mmc_ext_tuple.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 16:48:51 -0700 (Mon, 03 Oct 2005)
Revision: 7823
Log message:

      Re-add the extensions to the EXTENSIONS variable.
      

Changes  Path
+5 -3 mpcompiler/mmc/OMakefile
+1 -0 mpcompiler/mmc/extensions/array/Files
+1 -0 mpcompiler/mmc/extensions/bool/Files
+1 -0 mpcompiler/mmc/extensions/callcc/Files
+1 -0 mpcompiler/mmc/extensions/int/Files
+1 -0 mpcompiler/mmc/extensions/loop/Files
+1 -0 mpcompiler/mmc/extensions/operator/Files
+1 -0 mpcompiler/mmc/extensions/ref/Files
+1 -0 mpcompiler/mmc/extensions/sequence/Files
+1 -0 mpcompiler/mmc/extensions/special/Files
+1 -0 mpcompiler/mmc/extensions/string/Files
+1 -0 mpcompiler/mmc/extensions/tuple/Files
+1 -0 mpcompiler/mmc/extensions/tyexists/Files
+1 -0 mpcompiler/mmc/extensions/unit/Files

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-03 18:23:29 -0700 (Mon, 03 Oct 2005)
Revision: 7824
Log message:

      MMC Finally compiles!
      

Changes  Path
+5 -2 mpcompiler/mmc/OMakefile
+1 -1 mpcompiler/mmc/extensions/array/Files
+1 -1 mpcompiler/mmc/extensions/string/Files

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 18:32:37 -0700 (Mon, 03 Oct 2005)
Revision: 7825
Log message:

      Added the grammar for F<:
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/OMakefile
Copied mpcompiler/poplmark/naive/pmn_base_grammar.ml
Copied mpcompiler/poplmark/naive/pmn_base_grammar.mli
+1 -0 mpcompiler/poplmark/naive/pmn_core_tast.ml
+192 -10 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 19:00:29 -0700 (Mon, 03 Oct 2005)
Revision: 7826
Log message:

      Removed some useless terms from the PMN judgments.
      

Changes  Path
+0 -6 mpcompiler/poplmark/naive/pmn_base_judgment.ml
+17 -28 mpcompiler/poplmark/naive/pmn_base_judgment.mli
+27 -0 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 19:40:06 -0700 (Mon, 03 Oct 2005)
Revision: 7828
Log message:

      This adds the foundation/~boilerplate for Fsub.
      
      We should probably do a little factoring to separate the
      real boilerplate from the logic-specific code.
      
      I'll punt on this now until the logic is a bit more developed.
      

Changes  Path
+2 -0 mpcompiler/poplmark/naive/OMakefile
Copied mpcompiler/poplmark/naive/pmn_core_mterm.ml
Copied mpcompiler/poplmark/naive/pmn_core_mterm.mli
Copied mpcompiler/poplmark/naive/pmn_core_prop.ml
Copied mpcompiler/poplmark/naive/pmn_core_prop.mli
+14 -6 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-03 20:37:07 -0700 (Mon, 03 Oct 2005)
Revision: 7832
Log message:

      Adding the induction principle for simple Fsub.
      It doesn't typecheck yet, I'll work on it tomorrow.
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/OMakefile
Added mpcompiler/poplmark/naive/pmn_close_fsub.ml
Properties mpcompiler/poplmark/naive/pmn_close_fsub.ml
Added mpcompiler/poplmark/naive/pmn_close_fsub.mli
Properties mpcompiler/poplmark/naive/pmn_close_fsub.mli
+2 -4 mpcompiler/poplmark/naive/pmn_core_mterm.mli
+9 -12 mpcompiler/poplmark/naive/pmn_core_prop.mli
+38 -8 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-03 21:09:32 -0700 (Mon, 03 Oct 2005)
Revision: 7833
Log message:

      Tests run correctly now.
      

Changes  Path
+5 -3 mpcompiler/mmc/test/mmc

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-03 21:12:36 -0700 (Mon, 03 Oct 2005)
Revision: 7835
Log message:

      Bumping the OMake/MetaPRL version requirements.
      

Changes  Path
+2 -2 mpcompiler/mmc/OMakefile

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-04 06:17:48 -0700 (Tue, 04 Oct 2005)
Revision: 7837
Log message:

      Use the relative path and the MP_CWD variable for producing output in the
      current directory.
      

Changes  Path
+1 -1 mpcompiler/mmc/OMakefile
+10 -0 mpcompiler/mmc/arch/x86/print/mmc_x86_print.ml
+1 -1 mpcompiler/mmc/test/mmc
+29 -29 mpcompiler/mmc/test/mmc_tests_out.previous
+2 -2 mpcompiler/poplmark/pmc/OMakefile

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 11:58:56 -0700 (Tue, 04 Oct 2005)
Revision: 7838
Log message:

      Investigating the use of second-order abstract syntax (SOAS), a'la DH94.
      
      This makes only a slight change to the formalism, requiring explicit
      Var constructors, which are somewhat more satisfying anyway.  That is,
      the terms are:
      
          declare typeclass Var -> Term
          declare typeclass Exp -> Term
          declare typeclass TyExp -> Term
      
          declare Var[v:v] : Exp
          declare Apply{'e1 : Exp; 'e2 : Exp} : Exp
          declare Lambda{'ty : TyExp; x : Var. 'e['x] : Exp} : Exp
           --- note the type! -------------^
      
      The intention is that this will lead to defining the type of terms as
      a simple recursive type in ITT, allowing the induction principle to
      be derived.  In pseudo-code:
      
        define Exp <-->
           srec(Exp.
               Var of var
             | Apply of Exp * Exp
             | Lambda of TyExp * (var -> Exp))
      
      Note that this definition is positive and well-formed.
      
      Note, it probably also means that a well-formedness constraint will be
      needed to rule out exotic terms.
      

Changes  Path
+2 -0 mpcompiler/poplmark/naive/pmn_base_judgment.mli
+2 -0 mpcompiler/poplmark/naive/pmn_close_fsub.ml
+8 -3 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 14:08:35 -0700 (Tue, 04 Oct 2005)
Revision: 7839
Log message:

      Added the induction principles.
      
      Next, I'll define the model, and derive the induction rules.
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/OMakefile
+1 -33 mpcompiler/poplmark/naive/pmn_base_judgment.mli
+12 -3 mpcompiler/poplmark/naive/pmn_close_fsub.ml
+1 -0 mpcompiler/poplmark/naive/pmn_close_fsub.mli
+7 -3 mpcompiler/poplmark/naive/pmn_core_mterm.mli
+38 -11 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 14:41:10 -0700 (Tue, 04 Oct 2005)
Revision: 7840
Log message:

      Adding the ITT model.
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/OMakefile
+14 -2 mpcompiler/poplmark/naive/pmn_close_fsub.ml
Added mpcompiler/poplmark/naive/pmn_core_model.ml
Properties mpcompiler/poplmark/naive/pmn_core_model.ml
Added mpcompiler/poplmark/naive/pmn_core_model.mli
Properties mpcompiler/poplmark/naive/pmn_core_model.mli
+4 -4 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 14:57:28 -0700 (Tue, 04 Oct 2005)
Revision: 7842
Log message:

      Remove base_judgment, and use ITT sequents instead.
      

Changes  Path
+1 -2 mpcompiler/poplmark/naive/OMakefile
+1 -1 mpcompiler/poplmark/naive/pmn_base_grammar.ml
+1 -1 mpcompiler/poplmark/naive/pmn_base_grammar.mli
Deleted mpcompiler/poplmark/naive/pmn_base_judgment.ml
Deleted mpcompiler/poplmark/naive/pmn_base_judgment.mli
Deleted mpcompiler/poplmark/naive/pmn_close_fsub.ml
Deleted mpcompiler/poplmark/naive/pmn_close_fsub.mli
Copied mpcompiler/poplmark/naive/pmn_core_ind.ml
Copied mpcompiler/poplmark/naive/pmn_core_ind.mli
+6 -0 mpcompiler/poplmark/naive/pmn_core_model.ml
+0 -3 mpcompiler/poplmark/naive/pmn_core_tast.ml
+0 -2 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 15:51:42 -0700 (Tue, 04 Oct 2005)
Revision: 7843
Log message:

      Defined the ITT srec model and proved the WF lemmas.
      

Changes  Path
Properties mpcompiler/poplmark/naive
+53 -5 mpcompiler/poplmark/naive/pmn_core_model.ml
+3 -0 mpcompiler/poplmark/naive/pmn_core_model.mli
Binary mpcompiler/poplmark/naive/pmn_core_model.prla
Properties mpcompiler/poplmark/naive/pmn_core_model.prla

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 16:14:52 -0700 (Tue, 04 Oct 2005)
Revision: 7844
Log message:

      Induction is easy to prove, except for the following error
      
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      
      # save ()
      Saving pmn_core_ind
      Invalid Argument:
          output_value: functional value
      
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      
      This is very sad.  It seems to appear right after the srecElimination
      rule is used.
      

Changes  Path
+15 -23 mpcompiler/poplmark/naive/pmn_core_ind.ml
+0 -4 mpcompiler/poplmark/naive/pmn_core_ind.mli
+8 -3 mpcompiler/poplmark/naive/pmn_core_model.ml
+5 -0 mpcompiler/poplmark/naive/pmn_core_model.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 17:16:25 -0700 (Tue, 04 Oct 2005)
Revision: 7846
Log message:

      Punting on Bug #529 since I have a temporary workaround.
      
      The induction is not quite right, because srec induction works
      on a subtype, not the original type.  I'll have to reformulate.
      

Changes  Path
+2 -0 mpcompiler/poplmark/naive/pmn_core_ind.ml
Binary mpcompiler/poplmark/naive/pmn_core_ind.prla
Properties mpcompiler/poplmark/naive/pmn_core_ind.prla

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-05 10:50:07 -0700 (Wed, 05 Oct 2005)
Revision: 7847
Log message:

      Added a grammar for a fragment of ITT.
      Using Aleksey's suggestion to include Itt_eta.
      

Changes  Path
+27 -13 mpcompiler/poplmark/naive/pmn_core_ind.ml
+76 -0 mpcompiler/poplmark/naive/pmn_core_model.mli
+0 -8 mpcompiler/poplmark/naive/pmn_core_mterm.mli
+12 -1 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-05 11:25:56 -0700 (Wed, 05 Oct 2005)
Revision: 7848
Log message:

      Proved the induction principle for types.
      Expressions are provable by the same methods.
      
      The only unsatisfying part is the use of subtypes.
      
      This is the rule we would like:
      
          <H>; ty1 : TyExp; ty2 : TyExp; C[ty1]; C[ty2] >- C[ty1 -> ty2] -->
          ...
          <H>; x: TyExp >- C[x]
      
      This is the rule we get:
          <H>; T: univ[1:l]; T subtype TyExp; ty1 : T; ty2 : T; C[ty1]; C[ty2] >- C[ty1 -> ty2] -->
          ...
          <H>; x: TyExp >- C[x]
      
      Any thoughts on how to avoid this mess?
      

Changes  Path
+3 -3 mpcompiler/poplmark/naive/pmn_core_ind.ml
Binary mpcompiler/poplmark/naive/pmn_core_ind.prla
+7 -1 mpcompiler/poplmark/naive/pmn_core_model.ml
+7 -1 mpcompiler/poplmark/naive/pmn_core_model.mli

Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-05 23:12:10 -0700 (Wed, 05 Oct 2005)
Revision: 7852
Log message:

      *.prla should have svn:eol-style property set to "native"

Changes  Path
Properties mpcompiler/poplmark/naive/pmn_core_ind.prla
Properties mpcompiler/poplmark/naive/pmn_core_model.prla

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-05 23:37:16 -0700 (Wed, 05 Oct 2005)
Revision: 7854
Log message:

      Excellent, I am so happy:)  Using
          - Itt_eta: for eta expansion
          - Itt_pairwise2: for pairwise functionality
      I have proved the naive induction rules for Fsub
      in Pmn_core_ind.
      
      Pairwise functionality is awesome!  And
      thanks Aleksey for the guidance.
      

Changes  Path
+7 -13 mpcompiler/poplmark/naive/pmn_core_ind.ml
Binary mpcompiler/poplmark/naive/pmn_core_ind.prla

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 00:12:13 -0700 (Thu, 06 Oct 2005)
Revision: 7855
Log message:

      Added typing rules.
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/OMakefile
+5 -1 mpcompiler/poplmark/naive/pmn_core_prop.mli
Added mpcompiler/poplmark/naive/pmn_core_type.ml
Properties mpcompiler/poplmark/naive/pmn_core_type.ml
Added mpcompiler/poplmark/naive/pmn_core_type.mli
Properties mpcompiler/poplmark/naive/pmn_core_type.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 00:34:33 -0700 (Thu, 06 Oct 2005)
Revision: 7856
Log message:

      Added subtyping rules.
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/OMakefile
Added mpcompiler/poplmark/naive/pmn_core_subtype.ml
Properties mpcompiler/poplmark/naive/pmn_core_subtype.ml
Added mpcompiler/poplmark/naive/pmn_core_subtype.mli
Properties mpcompiler/poplmark/naive/pmn_core_subtype.mli
+11 -0 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 00:39:52 -0700 (Thu, 06 Oct 2005)
Revision: 7857
Log message:

      Added the transitive subtyping (PM challenge #1) theorem.
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/OMakefile
Added mpcompiler/poplmark/naive/pmn_core_transitive.ml
Properties mpcompiler/poplmark/naive/pmn_core_transitive.ml
Added mpcompiler/poplmark/naive/pmn_core_transitive.mli
Properties mpcompiler/poplmark/naive/pmn_core_transitive.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 00:42:32 -0700 (Thu, 06 Oct 2005)
Revision: 7858
Log message:

      Rename Pmn_core_ind to Pmn_core_final.
      

Changes  Path
+1 -1 mpcompiler/poplmark/naive/OMakefile
Copied mpcompiler/poplmark/naive/pmn_core_final.ml
Copied mpcompiler/poplmark/naive/pmn_core_final.mli
Copied mpcompiler/poplmark/naive/pmn_core_final.prla
Deleted mpcompiler/poplmark/naive/pmn_core_ind.ml
Deleted mpcompiler/poplmark/naive/pmn_core_ind.mli
Binary mpcompiler/poplmark/naive/pmn_core_ind.prla
+1 -4 mpcompiler/poplmark/naive/pmn_core_transitive.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 01:02:25 -0700 (Thu, 06 Oct 2005)
Revision: 7859
Log message:

      Bleh, for the original POPLmark challenge rules, it isn't even
      clear that (top <: top).
      
      I'd like to add a reflexive rule like (X in type -> X <: X) but
      that is not in the spirit of the challenge.
      
      Please, if you can look at page 8 of the challenge, tell me how
      (top <: top)...
      

Changes  Path
+1 -0 mpcompiler/poplmark/naive/pmn_core_final.ml
+3 -0 mpcompiler/poplmark/naive/pmn_core_final.mli
+8 -1 mpcompiler/poplmark/naive/pmn_core_transitive.ml
Binary mpcompiler/poplmark/naive/pmn_core_transitive.prla
Properties mpcompiler/poplmark/naive/pmn_core_transitive.prla

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 01:34:28 -0700 (Thu, 06 Oct 2005)
Revision: 7860
Log message:

      Proved reflexivity of subtyping.
      

Changes  Path
+8 -7 mpcompiler/poplmark/naive/pmn_core_subtype.ml
+2 -0 mpcompiler/poplmark/naive/pmn_core_transitive.ml
Binary mpcompiler/poplmark/naive/pmn_core_transitive.prla
+7 -2 mpcompiler/poplmark/naive/pmn_core_type.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 02:20:29 -0700 (Thu, 06 Oct 2005)
Revision: 7861
Log message:

      Getting tired...  Transitivity is partially proved,
      I need to explore it later.
      

Changes  Path
+11 -0 mpcompiler/poplmark/naive/pmn_core_subtype.ml
Binary mpcompiler/poplmark/naive/pmn_core_transitive.prla
+5 -0 mpcompiler/poplmark/naive/pmn_core_type.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 10:29:56 -0700 (Thu, 06 Oct 2005)
Revision: 7863
Log message:

      Proved transitivity of subtyping.
      
      The proof is a little disconcerting because it is basically
      a two-step proof.
      
         1. Peform induction
         2. autoT proves all subgoals
      
      Stated as a tactic, the proof is a one-liner:
      
         dT 2 thenT autoT
      
      This is both good and bad.  POPLmark says that a simultaneous
      induction is required, and narrowing must be proved at the
      same time.
      
      Here is narrowing as stated in POPLmark.
      
         <H>; X <: Q; <J[X]> >- M <: N -->
         <H> >- P <: Q -->
         <H>; X <: P; <J[X]> >- M <: N
      
      I assume narrowing reduces to transitivity in the ITT
      formulation I am using, because the ITT sequents look
      like this:
      
         <H>; X : TyExp; X <: Q; <J[X]> >- M <: N --> ...
      
      Since the hyp X <: Q is not a binding occurrence, it can
      move around just like any other proposition, and narrowing
      is no different from simple transitivity.
      
      So here is the big question:
      
         - Is the use of sequents in a rich logic (ITT) unfaithful 
           to the challenge?  It might be; the alternative is to  
           define a custom sequent.                              
      

Changes  Path
+2 -0 mpcompiler/poplmark/naive/pmn_core_prop.ml
Binary mpcompiler/poplmark/naive/pmn_core_transitive.prla
+12 -3 mpcompiler/poplmark/naive/pmn_core_type.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-06 13:08:35 -0700 (Thu, 06 Oct 2005)
Revision: 7864
Log message:

      Time to rethink the entire model.
      
      The problem is with proof induction.  When we write down
      a type system, what we mean is that the typing rules
      are the *only* rules that are allowed, which gives
      us an induction principle.
      
      This doesn't work if you formalize a type system as a
      logic in MetaPRL, because logics are open-ended.  You can
      state some kind of induction principle as an axiom,
      but we've had that argument before.
      
      So, another solution is the state a language of derivations,
      reducing proof induction to structural induction, which
      we know how to do.
      
      Unfortunately, I don't immediately see how to define a
      language of derivations.
      

Changes  Path
+2 -0 mpcompiler/poplmark/naive/OMakefile
+4 -0 mpcompiler/poplmark/naive/pmn_core_model.mli
+9 -0 mpcompiler/poplmark/naive/pmn_core_prop.ml
Added mpcompiler/poplmark/naive/pmn_core_safety.ml
Properties mpcompiler/poplmark/naive/pmn_core_safety.ml
Added mpcompiler/poplmark/naive/pmn_core_safety.mli
Properties mpcompiler/poplmark/naive/pmn_core_safety.mli
Binary mpcompiler/poplmark/naive/pmn_core_safety.prla
Properties mpcompiler/poplmark/naive/pmn_core_safety.prla
Added mpcompiler/poplmark/naive/pmn_core_sos.ml
Properties mpcompiler/poplmark/naive/pmn_core_sos.ml
Added mpcompiler/poplmark/naive/pmn_core_sos.mli
Properties mpcompiler/poplmark/naive/pmn_core_sos.mli
+1 -0 mpcompiler/poplmark/naive/pmn_core_tast.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-07 19:16:49 -0700 (Fri, 07 Oct 2005)
Revision: 7874
Log message:

      Adding a propositional definition of type checking.
      Not finished, I want to shift some of the grammar to
      ITT.
      

Changes  Path
+2 -2 mpcompiler/poplmark/naive/pmn_core_prop.mli
+21 -6 mpcompiler/poplmark/naive/pmn_core_type.ml
Added mpcompiler/poplmark/naive/pmn_core_type_model.ml
Properties mpcompiler/poplmark/naive/pmn_core_type_model.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-08 17:22:04 -0700 (Sat, 08 Oct 2005)
Revision: 7880
Log message:

      Much of the grammar infrastructure is now generic
      and moved to ITT.
      
      This commit now assumes that PMN is defined as part of ITT.
      Fixed up most of the old proofs (this was trivial, since autoT solved
      everything anyway).
      
      Working on the propositional form of the type judgment.
      

Changes  Path
+1 -3 mpcompiler/poplmark/naive/OMakefile
Deleted mpcompiler/poplmark/naive/pmn_base_grammar.ml
Deleted mpcompiler/poplmark/naive/pmn_base_grammar.mli
+10 -13 mpcompiler/poplmark/naive/pmn_core_final.ml
+0 -3 mpcompiler/poplmark/naive/pmn_core_final.mli
+0 -3 mpcompiler/poplmark/naive/pmn_core_model.ml
+0 -81 mpcompiler/poplmark/naive/pmn_core_model.mli
+1371 -842 mpcompiler/poplmark/naive/pmn_core_model.prla
Deleted mpcompiler/poplmark/naive/pmn_core_mterm.ml
Deleted mpcompiler/poplmark/naive/pmn_core_mterm.mli
Deleted mpcompiler/poplmark/naive/pmn_core_prop.ml
Deleted mpcompiler/poplmark/naive/pmn_core_prop.mli
+13 -14 mpcompiler/poplmark/naive/pmn_core_safety.ml
+38 -40 mpcompiler/poplmark/naive/pmn_core_sos.ml
+8 -7 mpcompiler/poplmark/naive/pmn_core_sos.mli
+19 -23 mpcompiler/poplmark/naive/pmn_core_subtype.ml
+1 -1 mpcompiler/poplmark/naive/pmn_core_tast.ml
+62 -194 mpcompiler/poplmark/naive/pmn_core_tast.mli
+6 -6 mpcompiler/poplmark/naive/pmn_core_transitive.ml
+290 -561 mpcompiler/poplmark/naive/pmn_core_transitive.prla
+39 -40 mpcompiler/poplmark/naive/pmn_core_type.ml
+13 -28 mpcompiler/poplmark/naive/pmn_core_type_model.ml
Added mpcompiler/poplmark/naive/pmn_core_type_model.mli
Properties mpcompiler/poplmark/naive/pmn_core_type_model.mli

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-08 18:36:56 -0700 (Sat, 08 Oct 2005)
Revision: 7882
Log message:

      Partial definition of propositional type judgment.
      This is tricky.
      

Changes  Path
+1 -1 mpcompiler/poplmark/naive/pmn_core_safety.ml
+32 -10 mpcompiler/poplmark/naive/pmn_core_type_model.ml

Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 14:04:02 -0700 (Sun, 09 Oct 2005)
Revision: 7883
Log message:

      Preparing to copy into the MetaPRL tree.
      

Changes  Path
+2 -2 mpcompiler/poplmark/naive/pmn_core_type.ml