Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-11-06 18:03:10 -0800 (Sun, 06 Nov 2005)
Revision: 8116
Log message:

      Returned to requiring wf of sequents, so that we don't need wf-subgoals
      in the object logic.
      
      This mostly completes the initial phase of the Filter_parse reflection.
      You can define a logic of syntax, or a logic of rules, or any mixture.
      
         reflected_logic foo_logic =
         struct
            declare typeclass AExp
            declare typeclass BExp
      
            declare A : AExp
            declare B{'e : AExp} : AExp
            declare C{a: AExp. 'e['a] : BExp} : BExp
      
            interactive c_intro :
               sequent { <H>; a: A >- 'e['a] } -->
               sequent { <H> >- C{a. 'e['a]} }
         end
      
      Declarations are processed as normal in this block, plus 3 new parts
      are added.  Only the reflected rule makes sense.
      
      Each declaration/rule produces 3 parts:
         1. A definition (unfold_X : X <--> <definition>)
         2. A wf-goal (interactive X_wf : X in ProofRule)
         3. An ITT rule:
            interactive X_itt :
               <H1> >- Provable{$`(<H>; a: A >- e[a])} -->
               <H1> >- Provable{$`(<H> >- C{a. e[a]})}
      
      Plus you get the complete logic, containing all the rules
      that were defined (an no others).
      
         define foo_logic <--> [A; B; C; c_intro]
         define Provable{'e} <-->
            Itt_hoas_sequent_native!Provable{Sequent; foo_logic; 'e}
      
      I haven't proved any theorems, so we'll see how that goes.
      

Changes  Path
+218 -75 metaprl/filter/base/filter_reflection.ml
+9 -0 metaprl/filter/base/filter_reflection.mli
+238 -32 metaprl/filter/filter/filter_parse.ml
+7 -0 metaprl/refiner/refiner/refiner_debug.ml
+2 -2 metaprl/refiner/reflib/term_ty_infer.ml
+1 -0 metaprl/refiner/refsig/term_op_sig.ml
+5 -0 metaprl/refiner/term_ds/term_op_ds.ml
+5 -0 metaprl/refiner/term_std/term_op_std.ml
+1 -1 metaprl/support/display/perv.mli
+5 -0 metaprl/theories/itt/core/itt_list2.ml
+4 -0 metaprl/theories/itt/core/itt_list2.mli
+1 -1 metaprl/theories/itt/reflection/core/itt_hoas_base.ml
+4 -4 metaprl/theories/itt/reflection/core/itt_hoas_vector.ml
+2 -2 metaprl/theories/itt/reflection/experimental/OMakefile
Added metaprl/theories/itt/reflection/experimental/itt_hoas_meta_types.ml
Properties metaprl/theories/itt/reflection/experimental/itt_hoas_meta_types.ml
Added metaprl/theories/itt/reflection/experimental/itt_hoas_meta_types.mli
Properties metaprl/theories/itt/reflection/experimental/itt_hoas_meta_types.mli
+53 -0 metaprl/theories/itt/reflection/experimental/itt_hoas_sequent_native.ml
Added metaprl/theories/itt/reflection/experimental/itt_hoas_theory.ml
Properties metaprl/theories/itt/reflection/experimental/itt_hoas_theory.ml
Added metaprl/theories/itt/reflection/experimental/itt_hoas_theory.mli
Properties metaprl/theories/itt/reflection/experimental/itt_hoas_theory.mli
+23 -32 metaprl/theories/poplmark/naive/pmn_core_logic.ml
+12 -10 metaprl/theories/poplmark/naive/pmn_core_logic.mli
+58 -2 metaprl/theories/poplmark/naive/pmn_core_terms.ml
+40 -17 metaprl/theories/poplmark/naive/pmn_core_terms.mli