Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-01 15:06:02 -0700 (Sat, 01 Oct 2005)
Revision: 7809
Log message:
Changed xhypcontext to take the context name as a parameter instead of using a
binding as a context name. This is necessary because we do not want to use
binding in sequents with binding meta-type set to Perv!Ignore.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-03 21:12:08 -0700 (Mon, 03 Oct 2005)
Revision: 7834
Log message:
Bumping the version number (to account for Ignore-related changes).
Changes | Path |
+1 -1 | metaprl/mk/defaults |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-04 06:16:52 -0700 (Tue, 04 Oct 2005)
Revision: 7836
Log message:
Before changing to editor/ml, set MP_CWD environment variable to point to the
wd where the MetaPRL script was originally started from.
Changes | Path |
+2 -0 | metaprl/editor/ml/mp |
+2 -0 | metaprl/editor/ml/mpopt |
+2 -0 | metaprl/editor/ml/mptop |
+1 -1 | metaprl/mk/defaults |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 14:56:58 -0700 (Tue, 04 Oct 2005)
Revision: 7841
Log message:
I'm having trouble using untyped ITT with Fsub where I want types.
This define Ty -> Term so that I can make some progress.
Changes | Path |
+3 -3 | metaprl/refiner/reflib/term_ty_infer.ml |
+1 -1 | metaprl/support/display/perv.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-04 17:14:18 -0700 (Tue, 04 Oct 2005)
Revision: 7845
Log message:
Define srecElimination2 that hard-codes universe univ[1:l]
to avoid triggering Bug #529.
Changes | Path |
+1 -1 | metaprl/theories/itt/itt_equal.ml |
+22 -0 | metaprl/theories/itt/itt_srec.ml |
+1 -1 | metaprl/theories/itt/itt_srec.mli |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-05 18:28:01 -0700 (Wed, 05 Oct 2005)
Revision: 7849
Log message:
Bug 529 is not what we originally thought it was (and can be easily worked
around by using "export"), so I am reverting r7845.
Changes | Path |
+1 -1 | metaprl/theories/itt/itt_equal.ml |
+0 -22 | metaprl/theories/itt/itt_srec.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-05 22:50:10 -0700 (Wed, 05 Oct 2005)
Revision: 7850
Log message:
Add some convenience rules for eta-expansion.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-05 23:11:55 -0700 (Wed, 05 Oct 2005)
Revision: 7851
Log message:
*.prla should have svn:eol-style property set to "native"
Changes | Path |
Properties | metaprl/theories/itt/itt_eta.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-05 23:23:27 -0700 (Wed, 05 Oct 2005)
Revision: 7853
Log message:
I simply must reorder the arguments to the supertype rule.
Changes | Path |
+3 -1 | metaprl/theories/itt/itt_pairwise2.ml |
+2 -0 | metaprl/theories/itt/itt_pairwise2.mli |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-06 02:23:31 -0700 (Thu, 06 Oct 2005)
Revision: 7862
Log message:
Deleting an outdated comment.
Changes | Path |
+1 -1 | metaprl/theories/itt/itt_pairwise2.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-06 22:30:39 -0700 (Thu, 06 Oct 2005)
Revision: 7867
Log message:
Removing svn:mime-type from *.prla
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-06 22:35:23 -0700 (Thu, 06 Oct 2005)
Revision: 7868
Log message:
Added a section on setting up auto-props.
Changes | Path |
+24 -0 | metaprl/doc/htmlman/mp-svn-rw.html |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-06 22:37:29 -0700 (Thu, 06 Oct 2005)
Revision: 7869
Log message:
"CVS" -> "Subversion".
Changes | Path |
+3 -3 | metaprl/doc/htmlman/mp-install.html |
+2 -2 | metaprl/doc/htmlman/mp-svn-rw.html |
+1 -1 | metaprl/doc/htmlman/mp.html |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-06 22:40:30 -0700 (Thu, 06 Oct 2005)
Revision: 7870
Log message:
"Make sure you have subversion installed"
Changes | Path |
+2 -0 | metaprl/doc/htmlman/mp-svn-rw.html |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-06 23:04:10 -0700 (Thu, 06 Oct 2005)
Revision: 7871
Log message:
Removing the Itt_fun module. Now the independent function is just a dependent
function where the dependency variable does not occur (and will normally be
represented by an empty string).
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-08 17:19:09 -0700 (Sat, 08 Oct 2005)
Revision: 7879
Log message:
!! This breaks binary compatibility !!
!! Export your theories before doing an update !!
Two things:
- Use omake_0_9_7_pre7/libmojave instead of the trunk libmojave
- Added a minimal grammar to ITT
I believe I have fixed the "functional value" marshaling problem,
but PLEASE let me know if you encounter a "functional value"
problem.
This appears as follows:
# save ()
Invalid Argument:
output_value: functional value
The workaround is to use "export ()" instead of "save ()" if this
happens.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-08 18:36:22 -0700 (Sat, 08 Oct 2005)
Revision: 7881
Log message:
Some changes to simple pattern matching.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 14:07:04 -0700 (Sun, 09 Oct 2005)
Revision: 7884
Log message:
Copied the naive POPLmark into the MetaPRL tree. The separation
was getting tiresome.
But, I still do not think this is the right solution.
We need better support for people who work outside the tree.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 14:28:40 -0700 (Sun, 09 Oct 2005)
Revision: 7885
Log message:
Rebuilding the theory. The plan is as follows:
1. Define the SOAS
2. Derive the induction principle
3. Define HOAS, based on a left-indexed deBruijn
representation. Sigh, this is more-or-less inevitable because we
need a substitution principle.
The proposed solution is to carry around an environment of the
following form, and is much like a model of closures.
VEnv <--> n:N * ({0..n-1} -> Exp)
The type is slightly better than in Coq, because Coq does not have
function extensionality.
4. Derive the induction principle.
Changes | Path |
Properties | metaprl/theories/poplmark/naive |
Copied | metaprl/theories/poplmark/naive/OMakefile |
Copied | metaprl/theories/poplmark/naive/pmn_core_soas_terms.ml |
Copied | metaprl/theories/poplmark/naive/pmn_core_soas_terms.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 14:45:04 -0700 (Sun, 09 Oct 2005)
Revision: 7886
Log message:
Added the SOAS model.
Minor rewriter bug--the following production fails.
We should allow it in non-strict mode.
production itt_term{univ[i:l]} <--
tok_univ; tok_id[i:s]
We would also like this to work:
production itt_term{univ[i:l]} <--
tok_univ; tok_int[i:n]
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 15:03:54 -0700 (Sun, 09 Oct 2005)
Revision: 7887
Log message:
Added the induction rule for SOAS.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 15:27:52 -0700 (Sun, 09 Oct 2005)
Revision: 7888
Log message:
The HOAS term symtax is exactly the same as SOAS.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 15:57:03 -0700 (Sun, 09 Oct 2005)
Revision: 7889
Log message:
Added grammars for a fragment of integers, sets, etc.
Also, Itt_nat was not included in Itt_theory. Is there
a reason why it shouldn't be there?
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 16:32:24 -0700 (Sun, 09 Oct 2005)
Revision: 7890
Log message:
First pass on defining the HOAS model.
I think I need a theory of finite functions first.
Changes | Path |
+48 -2 | metaprl/theories/poplmark/naive/pmn_core_hoas_model.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 18:35:56 -0700 (Sun, 09 Oct 2005)
Revision: 7891
Log message:
Added a preliminary Itt_finite_fun1.
Would someone who knows how to prove arithmetic finish
the proof of Itt_finite_fun1.add_ffun_wf?
It is true, but I don't know how to prove it, and I would
like to see how the proof is done.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-09 19:48:01 -0700 (Sun, 09 Oct 2005)
Revision: 7892
Log message:
Hmm, I should probably use infinite functions instead. That is, instead
of the finite function
VEnv <--> n: int * { 0..n- } -> Exp
I should use
VEnv <--> int * (int -> Exp)
just to make wf theorems easier (otherwise the wf theorem has to be
indexed by the VEnv).
I'll still have a ton of arithmetic to do...
Changes by: Yegor N. Bryukhov (ybryukhov at gc.cuny.edu)
Date: 2005-10-09 23:05:57 -0700 (Sun, 09 Oct 2005)
Revision: 7893
Log message:
Finished Itt_finite_fun1.add_ffun_wf
I hope, my addition to elim-resource in Itt_bool won't break to many proofs. I'll deal with it tomorrow, now it is too late.
Changes | Path |
+3 -0 | metaprl/theories/itt/itt_bool.ml |
+8451 -8622 | metaprl/theories/itt/itt_bool.prla |
+1181 -912 | metaprl/theories/itt/itt_finite_fun1.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-10 11:06:06 -0700 (Mon, 10 Oct 2005)
Revision: 7894
Log message:
Added a "weak" form of finite countable functions,
where the underlying function is actually inifinite
to make well-formedness checking easier.
Changes by: Yegor N. Bryukhov (ybryukhov at gc.cuny.edu)
Date: 2005-10-10 22:23:18 -0700 (Mon, 10 Oct 2005)
Revision: 7895
Log message:
It's probably not me who broke /ctt_markov/markov2
but anyway, here is a fix.
Changes | Path |
+1012 -905 | metaprl/theories/itt/ctt_markov.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-11 10:15:09 -0700 (Tue, 11 Oct 2005)
Revision: 7896
Log message:
Setting the SOAS POPLmark model to the side for the moment
while I look at the infrastructure for reflection.
My plan is to work through it by adding a grammar.
By the time I am done, I should understand what it contains.
Unfortunately, the reflection files are not commented,
so this means a lot more interaction than necessary.
Reminder: it is unacceptable to write undocumented code.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-11 11:26:18 -0700 (Tue, 11 Oct 2005)
Revision: 7897
Log message:
Added a grammar for HOAS vectors and lists.
Note the following ambiguity.
let f = fun x -> x in f [1; 2; 3]
This is resolved by prefering second-order variables
over application to lists. So, to get what you probably
intended, you have to write.
let f = fun x -> x in f ([1; 2; 3])
Changes | Path |
+6 -1 | metaprl/theories/itt/itt_grammar.mli |
+2 -1 | metaprl/theories/itt/itt_hoas_base.mli |
+21 -0 | metaprl/theories/itt/itt_hoas_vector.mli |
+16 -0 | metaprl/theories/itt/itt_list.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-11 12:16:45 -0700 (Tue, 11 Oct 2005)
Revision: 7898
Log message:
Added a grammar for deBruijn terms.
Changes | Path |
+9 -0 | metaprl/theories/itt/itt_grammar.mli |
+42 -0 | metaprl/theories/itt/itt_hoas_debruijn.mli |
Changes by: Yegor N. Bryukhov (ybryukhov at gc.cuny.edu)
Date: 2005-10-14 09:02:38 -0700 (Fri, 14 Oct 2005)
Revision: 7911
Log message:
Fixed the proof of apply_ffun_wf which was probably broken by my recent commit to itt_finite_fun1.prla and to itt_bool
Changes | Path |
+183 -124 | metaprl/theories/itt/itt_finite_fun1.prla |
Changes by: Alexei Kopylov (kopylov at cs.caltech.edu)
Date: 2005-10-14 14:44:52 -0700 (Fri, 14 Oct 2005)
Revision: 7912
Log message:
Almost proved the correct induction rule for hoas_lang.
Add a bunch of theorems in other theories.
Still need to prove some of them.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-16 21:34:10 -0700 (Sun, 16 Oct 2005)
Revision: 7914
Log message:
- Fixed the corrupted itt_subset.prla file.
- Finished the remaining 3 proofs in itt_subset.
Changes | Path |
+3 -7 | metaprl/theories/itt/itt_subset.ml |
+1609 -1726 | metaprl/theories/itt/itt_subset.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-16 23:27:47 -0700 (Sun, 16 Oct 2005)
Revision: 7915
Log message:
Proved the itt_bisect lemmas that did not have a complete proof
Changes | Path |
+14 -14 | metaprl/theories/itt/itt_bisect.ml |
+3970 -4838 | metaprl/theories/itt/itt_bisect.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-17 10:50:21 -0700 (Mon, 17 Oct 2005)
Revision: 7918
Log message:
Rewrite should rewrite terms->operator-params in relaxed mode.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-17 11:15:25 -0700 (Mon, 17 Oct 2005)
Revision: 7919
Log message:
Added itt/test, defining untype lambda calculus.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-17 11:46:29 -0700 (Mon, 17 Oct 2005)
Revision: 7920
Log message:
Added an attempt at an induction rule for ULambda.
But, I just noticed that the elimination rules in Itt_hoas_lang
are not induction principles. Well I suppose Aleksey told me
that once.
In any case, I hope we can get induction principles!
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-17 12:28:28 -0700 (Mon, 17 Oct 2005)
Revision: 7921
Log message:
I'm not sure what lambda{...} looks like in terms of mk_bterm{...}
(is there a binding occurrence somewhere?).
Changes | Path |
+6 -0 | metaprl/support/display/perv.mli |
+44 -0 | metaprl/theories/itt/itt_grammar.mli |
+26 -0 | metaprl/theories/itt/test/itt_hoas_ulambda.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-17 13:32:32 -0700 (Mon, 17 Oct 2005)
Revision: 7922
Log message:
Removed the non-existent itt_fun from the list of theories to print.
Changes | Path |
+0 -1 | metaprl/theories/itt/OMakefile |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-17 19:31:05 -0700 (Mon, 17 Oct 2005)
Revision: 7923
Log message:
Mostly finished the generic term parser. This uses Perv!xterm
and Perv!xbterm for the raw representation (see Itt_grammar for
the current real grammar).
term ::= ... | "opname" opt_params opt_bterms
params ::= [ param, ..., param ]
bterms ::= { bterm; ...; bterm }
bterm ::= term | \v1, ..., vn. term
Note, proper bterms need a leading backslash. I just don't
really want to get into the whole issue of disambiguating pairs
from bterms:/
Some examples.
"int"
"type"{T}
"number"[1:n]
"lambda"{\x. x}
I still need to add support for params.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-17 19:41:26 -0700 (Mon, 17 Oct 2005)
Revision: 7924
Log message:
Slightly different term grammar.
Changes | Path |
+10 -8 | metaprl/theories/itt/itt_grammar.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-18 12:58:52 -0700 (Tue, 18 Oct 2005)
Revision: 7925
Log message:
Finished the generic term parser. The grammar is:
term ::= ... | opname opt_params opt_bterms
opname ::= <string> | opname . <string>
params ::= [ param; ...; param ]
param ::= pexp | pexp : kind
pexp ::= <int> | - <int> | <string> | <id> | pexp ' | pexp|pexp | ( term )
bterms ::= { bterm; ...; bterm }
bterm ::= term | \v1, ..., vn. term
Some examples
"number"[-1]
"add"{1; 2}
"Itt_rfun"."lambda"{\x. x}
"spread"{e1; \x, y. e2[x; y]}
"operator"[(fun x -> y):op]
The reason for the quotes around the opname is because variables
are not quoted. The reason for the backslash before binders is
to simplify the grammar.
Of course, it is also possible to define a variant for the
traditional syntax. We may wish to do so someday.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-18 13:59:11 -0700 (Tue, 18 Oct 2005)
Revision: 7926
Log message:
Moved the core term grammar into Base_grammar. It is now
called "xterm", "xrule", and "xrewrite".
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-18 15:34:29 -0700 (Tue, 18 Oct 2005)
Revision: 7927
Log message:
This is an initial experiment in reflection syntax.
The syntax is as follows, based loosely on Lisp quotations.
$`[depth] term : quotes a term at a specific binding depth
$,term : cancels the quotation
Examples:
$`[d] "apply"{e1; e2} ==
mk_bterm{d; operator[(apply{e1; e2}):op]; [e1; e2]}
$`[d] "lambda"{x. "apply"{$,(e1 +@ x); e2}} ==
mk_bterm{d; operator[(lambda{x. it}):op];
[bind{x. mk_bterm{d -@ 1; operator[(apply{it; it}):op]; [e1 +@ x; e2]}]
Don't worry that the term doesn't make sense, I'm just showing the syntax.
(I don't know if bind{x. ...} is the right thing to do on the subterm.
In fact, I'm just guessing about what reflected terms look like.)
To simplify a little, I would like to add a depth marker $#.
This would simplify the code in the case where the depth
is computed bottom-up.
(I'm using the simpler syntax here--the term is similar to the
one above).
$`(fun x -> ($,(e1 + x) $#e2))
In this case, the depth of the lambda is (depth{e2} +@ 1).
!! Note !!
I hardcoded this iform into Filter_grammar. I think it should go
somewhere else, preferably into one of the Itt_hoas_* files, but
this is not easy at the moment.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-18 16:38:50 -0700 (Tue, 18 Oct 2005)
Revision: 7928
Log message:
Added the $# marker I was talking about.
Added the Var type:
Var <--> Img{nat * nat; v. spread{v; i, j. var{'i; 'j}}}
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-18 18:31:15 -0700 (Tue, 18 Oct 2005)
Revision: 7929
Log message:
Looks like the basic reduction rules are missing, like
|[e1; e2]| doesn't normalize:(
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-18 19:06:25 -0700 (Tue, 18 Oct 2005)
Revision: 7930
Log message:
Proved that an application is a program.
The proof Itt_hoas_ulambda.apply_wf is painfully complicated--
if someone has more experience with compatible_shapes, would
you take a look at the proof?
Changes | Path |
+2 -2 | metaprl/theories/itt/test/itt_hoas_ulambda.ml |
+479 -272 | metaprl/theories/itt/test/itt_hoas_ulambda.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-18 19:43:33 -0700 (Tue, 18 Oct 2005)
Revision: 7931
Log message:
Added the $`"Lambda"{x. e[x]} wf theorem Itt_hoas_ulambda.lambda_wf.
Please help:) I don't know what quoted terms look like.
I am using the following.
$`[depth] Lambda{x. e[x]} ==
mk_bterm{depth; operator[Lambda{1}]; [bind{x. e[x]}]}
I assume the bind{x. ...} is wrong, is this true?
Changes | Path |
+10 -6 | metaprl/filter/base/filter_grammar.ml |
+5 -0 | metaprl/theories/itt/test/itt_hoas_ulambda.ml |
+118 -26 | metaprl/theories/itt/test/itt_hoas_ulambda.prla |
Changes by: Yegor N. Bryukhov (ybryukhov at gc.cuny.edu)
Date: 2005-10-18 22:42:47 -0700 (Tue, 18 Oct 2005)
Revision: 7932
Log message:
Ocaml 3.08.0 and 3.08.1 are not good enough - they don't have Pcaml.position needed to compile util/pa_macro.ml
Changes | Path |
+1 -1 | metaprl/mk/defaults |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-19 18:25:17 -0700 (Wed, 19 Oct 2005)
Revision: 7935
Log message:
The typeclass Ty is no longer a subtype of Term, it is back to
begin a subtype of Dform.
This breaks the poplmark/naive theory, we will need to find
some other way of resurrecting it if needed.
Changes | Path |
+1 -1 | metaprl/support/display/perv.mli |
+4 -1 | metaprl/theories/itt/test/itt_hoas_ulambda.ml |
+154 -64 | metaprl/theories/itt/test/itt_hoas_ulambda.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-19 19:19:01 -0700 (Wed, 19 Oct 2005)
Revision: 7936
Log message:
Simplified quotation iform expander, and re-proved Itt_hoas_ulambda.apply_wf.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-19 19:42:12 -0700 (Wed, 19 Oct 2005)
Revision: 7937
Log message:
Proved Itt_hoas_ulambda.lambda_wf.
Add Itt_hoas_jyh for terms/theorems that that I need
until I can find where to add them back into the reflection
theories.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 11:42:08 -0700 (Thu, 20 Oct 2005)
Revision: 7938
Log message:
Part way to proving the induction principal for ULambda.
Proving some lemmas first.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 11:43:26 -0700 (Thu, 20 Oct 2005)
Revision: 7939
Log message:
Call the lemma Itt_hoas_lang2.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 12:34:38 -0700 (Thu, 20 Oct 2005)
Revision: 7940
Log message:
Also problems with extensional sets.
Changes | Path |
+1 -1 | metaprl/theories/itt/itt_hoas_operator.ml |
+1 -0 | metaprl/theories/itt/test/itt_hoas_lang2.ml |
Changes by: Alexei Kopylov (kopylov at cs.caltech.edu)
Date: 2005-10-20 14:46:31 -0700 (Thu, 20 Oct 2005)
Revision: 7941
Log message:
Proved some theorems
Changes by: Xin Yu (xiny at cs.caltech.edu)
Date: 2005-10-20 15:04:27 -0700 (Thu, 20 Oct 2005)
Revision: 7942
Log message:
A very draft version of lambda calculus.
Changes | Path |
Added | metaprl/theories/itt/itt_hoas_lambda.ml |
Added | metaprl/theories/itt/itt_hoas_lambda.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 15:08:07 -0700 (Thu, 20 Oct 2005)
Revision: 7943
Log message:
Added extensional elistmem_set{'l; 'T}. It turns out that this
doesn't really help me, but sometime this may be useful.
Changes | Path |
+42 -0 | metaprl/theories/itt/itt_list2.ml |
+6747 -5144 | metaprl/theories/itt/itt_list2.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 15:26:36 -0700 (Thu, 20 Oct 2005)
Revision: 7944
Log message:
Added itt_hoas_lang2.prla
Changes | Path |
Added | metaprl/theories/itt/test/itt_hoas_lang2.prla |
Properties | metaprl/theories/itt/test/itt_hoas_lang2.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 16:10:01 -0700 (Thu, 20 Oct 2005)
Revision: 7945
Log message:
Changed listmem_set_elim2 to a more expressive definition.
Changes | Path |
+25 -22 | metaprl/theories/itt/itt_list2.ml |
+6370 -6488 | metaprl/theories/itt/itt_list2.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 16:28:23 -0700 (Thu, 20 Oct 2005)
Revision: 7946
Log message:
Removed extensional version elistmem_set{'l; 'T}
Changes | Path |
+0 -36 | metaprl/theories/itt/itt_list2.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 16:32:28 -0700 (Thu, 20 Oct 2005)
Revision: 7947
Log message:
Aleksey: Forgot to add this.
Changes | Path |
Added | metaprl/theories/itt/itt_sqsimple.prla |
Properties | metaprl/theories/itt/itt_sqsimple.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 17:29:48 -0700 (Thu, 20 Oct 2005)
Revision: 7948
Log message:
Merged the ITT spelling list into the global one.
Changes | Path |
+2 -0 | metaprl/lib/words |
Deleted | metaprl/theories/itt/.ispell_english |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-20 18:42:24 -0700 (Thu, 20 Oct 2005)
Revision: 7950
Log message:
For some reason, itt_list2 was using itt_pairwise, which is bad. I removed the
"extends Itt_pairwise" for now, but now a few proofs will need fixing.
Changes | Path |
+0 -1 | metaprl/theories/itt/itt_list2.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 19:09:17 -0700 (Thu, 20 Oct 2005)
Revision: 7951
Log message:
Group/VNC editing (Aleksey, Alexei, Jason and Xin):
This refactors ITT into several subdirectories instead of a single huge pile
that we used to have.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 19:36:52 -0700 (Thu, 20 Oct 2005)
Revision: 7952
Log message:
Various fixes to get things to compile again.
Note the hardcoded theories/itt/core in editor/ml/OMakefile.
This should be fixed.
Changes | Path |
+4 -1 | metaprl/editor/ml/OMakefile |
+2 -3 | metaprl/theories/itt/tests/OMakefile |
+4 -3 | metaprl/theories/itt/tests/gen_int_bench.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 19:43:03 -0700 (Thu, 20 Oct 2005)
Revision: 7953
Log message:
Include itt/reflection/experimental/jyh.
Actually, I wonder if experimental directories should be included
by default. It may be better to require them explicitly in
mk/config.
Changes | Path |
+8 -0 | metaprl/theories/itt/reflection/experimental/OMakefile |
+1 -1 | metaprl/theories/itt/reflection/experimental/jyh/OMakefile |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 19:52:49 -0700 (Thu, 20 Oct 2005)
Revision: 7954
Log message:
Proved the operator elimination lemma--it is now trivial.
Changes | Path |
+2 -0 | metaprl/theories/itt/core/itt_list2.ml |
+6069 -7213 | metaprl/theories/itt/core/itt_list2.prla |
+39 -252 | metaprl/theories/itt/reflection/experimental/jyh/itt_hoas_lang2.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-20 19:55:39 -0700 (Thu, 20 Oct 2005)
Revision: 7955
Log message:
THe theories/itt/core include is only needed by the editor/ml/tests directory
(where it is not so unreasonable to have it hardcoded).
Changes | Path |
+0 -3 | metaprl/editor/ml/OMakefile |
+3 -0 | metaprl/editor/ml/tests/OMakefile |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-20 20:09:16 -0700 (Thu, 20 Oct 2005)
Revision: 7956
Log message:
Added a "mixed" compilation mode that builds a native code filter and a
bytecode toploops. This may be the optimal mode when doing a lot of theory
development, but the proofs are fairly simple, so I made it the default mode.
The config file now has a single "COMPILATION_MODE" variable (possible values:
byte, native, both and mixed) instead of NATIVE_ENABLED/BYTE_ENABLED.
Warning: if you want something other than the default "mixed", make sure to
edit your mk/config after "svn up; omake mk/config".
Changes | Path |
+13 -4 | metaprl/OMakefile |
+9 -1 | metaprl/editor/ml/OMakefile |
+1 -2 | metaprl/mk/defaults |
+11 -4 | metaprl/mk/make_config |
Properties | metaprl/theories/itt/tests |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-20 23:59:58 -0700 (Thu, 20 Oct 2005)
Revision: 7957
Log message:
Further work on the Itt_hoas_lang2 wrapper.
Derived a more standard induction principle.
Tried to define compatible_depths in terms of
compatible_shapes but the proof is grundgy:(
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-21 05:07:42 -0700 (Fri, 21 Oct 2005)
Revision: 7958
Log message:
- Avoid repeating the include directories in both MP_INCLUDE environment
variabele and the -I option to the filter (since the two are equivalent).
- Hide the envoronment variable stuff, making the commandline that's presented
to the user shorter.
Changes | Path |
+4 -1 | metaprl/OMakefile |
Deleted | metaprl/filter/filter/prlcomp.ml |
Deleted | metaprl/filter/filter/prlcomp.mli |
+10 -20 | metaprl/mk/prlcomp |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-21 05:35:10 -0700 (Fri, 21 Oct 2005)
Revision: 7959
Log message:
Fixing the documentation generation for ITT.
Reordered the theories a bit to better match the current split into
subtheories.
Changes | Path |
+86 -75 | metaprl/theories/itt/OMakefile |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-21 14:03:25 -0700 (Fri, 21 Oct 2005)
Revision: 7960
Log message:
I'm kind of stealing a network cable in the court building, so
I should be quick:b
Added Itt_list2.all2{'l1; 'l2; x, y. 'P['x; 'y]}. I actually
think that formulating compatible_shapes in terms of all2 is
better than the list equality Aleksey suggested. This reason
is because all2 has nicer computational behavior because it
gives a self-contained predicate for each cons. In other
words
compatible_shapes{'depth; 'h1::'t1; 'h2::'t2}
<-->
(('depth +@ 'h1) = bdepth{'h2} in int) & compatible_shapes{'depth; 't1; 't2}
Computationally, this is nicer than either of the previous
formulations, especially in proofs by induction.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-21 14:05:57 -0700 (Fri, 21 Oct 2005)
Revision: 7961
Log message:
Forgot to save the proofs.
Changes | Path |
+648 -417 | metaprl/theories/itt/reflection/experimental/jyh/itt_hoas_lang2.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-21 16:14:09 -0700 (Fri, 21 Oct 2005)
Revision: 7962
Log message:
Adding reduceT to the end of autoCompleteT. This results in a noticeable
reduction of ruleboxes (as much as 3 instead of 10 in some of the CZF proofs)
at a cost of about 10% increase of the "status_all" running time.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-21 18:19:42 -0700 (Fri, 21 Oct 2005)
Revision: 7963
Log message:
Moved the Var type back into Itt_hoas_debruijn.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-21 18:28:47 -0700 (Fri, 21 Oct 2005)
Revision: 7964
Log message:
Adding PHONY targets for running MetaPRL once it compiles.
Changes | Path |
+8 -2 | metaprl/editor/ml/OMakefile |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-21 19:20:26 -0700 (Fri, 21 Oct 2005)
Revision: 7965
Log message:
If all2{l1; l2; ...} then |l1| = |l2|.
Changes | Path |
+16 -2 | metaprl/theories/itt/core/itt_list2.ml |
+3511 -3031 | metaprl/theories/itt/core/itt_list2.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-21 19:32:33 -0700 (Fri, 21 Oct 2005)
Revision: 7966
Log message:
Proved a rule allowing "nice" elimination of the Image type when the base type
is sqsimple and the map is reversible (img_elim_sqsimple).
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-21 20:17:22 -0700 (Fri, 21 Oct 2005)
Revision: 7967
Log message:
If
all2{l1; l2; x, y. P[x; y]}
then
all i: Index{l1}. P[nth{l1; i}; nth{l2; i}]
The proof is pretty painful. I don't like Index/nth
reasoning:)
Changes | Path |
+32 -24 | metaprl/theories/itt/core/itt_list2.ml |
+3671 -2880 | metaprl/theories/itt/core/itt_list2.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-21 21:32:26 -0700 (Fri, 21 Oct 2005)
Revision: 7968
Log message:
Bug 534: use "echo > $@" instead of touch "$@" for portability
Changes | Path |
+1 -1 | metaprl/editor/ml/OMakefile |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-21 21:45:45 -0700 (Fri, 21 Oct 2005)
Revision: 7970
Log message:
Adding a new PHONY target - run "omake core-incompletes" to receive an email
listing all the incomplete proofs in the ITT core.
Changes | Path |
+5 -2 | metaprl/OMakefile |
+45 -35 | metaprl/util/check-status.sh |
Added | metaprl/util/core-incompletes.sh |
Properties | metaprl/util/core-incompletes.sh |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 08:54:23 -0700 (Sat, 22 Oct 2005)
Revision: 7971
Log message:
If
|l1| = |l2| & all i: Index(l1). P[nth{l1; i}; nth{l2; i}]
then
all2{l1; l2; x, y. P[x; y]}
Another grundgy theorem.
Changes | Path |
+13 -0 | metaprl/theories/itt/core/itt_list2.ml |
+2015 -781 | metaprl/theories/itt/core/itt_list2.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 09:25:27 -0700 (Sat, 22 Oct 2005)
Revision: 7972
Log message:
Proved that compatible_depths (defined using all2{...}) is
equivalent to compatible_shapes.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 10:09:06 -0700 (Sat, 22 Oct 2005)
Revision: 7973
Log message:
Proved a more useful form of induction in Itt_hoas_lang.lang_elim2.
Derived the nice induction principle based on compatible_depths
in Itt_hoas_lang.olang_elim.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 12:29:13 -0700 (Sat, 22 Oct 2005)
Revision: 7974
Log message:
Added sqstable of nondependent products.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 13:08:42 -0700 (Sat, 22 Oct 2005)
Revision: 7975
Log message:
Added sqsimple{nat}. As I do these things, I'm trying to
clean up the theories by proving all the things people were
too lazy to prove.
Take a look at Itt_nat.well_ordering_principle. Either I'm
confused by all the negations, or the rule is false.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 14:27:49 -0700 (Sat, 22 Oct 2005)
Revision: 7976
Log message:
Added sqstable for the tunion type.
Note that Itt_tunion.tunionElimination_disjoint is unproved.
Are we sure it is true?
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-22 15:05:30 -0700 (Sat, 22 Oct 2005)
Revision: 7977
Log message:
Removed an unnecessary wf assumption from the img_sqsimple rule.
Changes | Path |
+9 -6 | metaprl/theories/itt/core/itt_image.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-22 15:24:25 -0700 (Sat, 22 Oct 2005)
Revision: 7978
Log message:
Somehow my previous img_sqsimple commit did not include the .prla, sorry.
Changes | Path |
+577 -495 | metaprl/theories/itt/core/itt_image.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-22 15:31:22 -0700 (Sat, 22 Oct 2005)
Revision: 7979
Log message:
Yes, well_ordering_principle is indeed bogus.
Changes | Path |
+0 -12 | metaprl/theories/itt/core/itt_nat.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 16:24:47 -0700 (Sat, 22 Oct 2005)
Revision: 7980
Log message:
Working on a more general sqsimple theorem for tunion.
Basically, my plan is to prove somehow that
if (B[i] subtype [i +@ 1])
and (x = y in Union i: nat. B[i])
then [exists i: nat. x = y in B[i]]
I don't know if this will work.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-22 16:50:49 -0700 (Sat, 22 Oct 2005)
Revision: 7981
Log message:
rewriteAxiom1 should be a part of intro, not added to autoT directly.
Changes | Path |
+3 -9 | metaprl/theories/base/base_rewrite.ml |
+1 -1 | metaprl/theories/base/base_rewrite.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 17:56:05 -0700 (Sat, 22 Oct 2005)
Revision: 7982
Log message:
Proving a general sqsimple theorem for Itt_tunion is hard.
Giving up on it for now.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-22 19:02:05 -0700 (Sat, 22 Oct 2005)
Revision: 7983
Log message:
Ok, I will be able to prove sqsimple{BTerm}, or more precisely
that sqsimple{olang{'ops}}. Currently the proof has gotten too
large, so I am factoring into lemmas.
Changes | Path |
+1 -1 | metaprl/theories/itt/core/itt_list2.ml |
+3103 -547 | metaprl/theories/itt/reflection/experimental/jyh/itt_hoas_lang2.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 08:18:54 -0700 (Sun, 23 Oct 2005)
Revision: 7984
Log message:
Added Itt_list2.map_wf4, and downgraded map_wf2 from being the default.
Reproved the theorems in Itt_hoas_lang that broke.
We actually have a general problem here.
1. In general, we should be careful not to add rules that are
hard to use (like map_wf2) as the default.
2. However, in some theories they are more convenient.
For now, I added a select option, so in Itt_hoas_lang, you use selT 5
(...) to get the old behavior.
I think one possible real solution would be to add a proof "mode",
which would be a string list annotation. Rules could be labeled with
a specific mode, like this.
interactive map_wf2 {| intro [ProofMode "reflection"] |} : ...
And the user would use a tactic to enable some modes.
addProofModeT : string list -> tactic
The proof mode would be inherited down the proof tree.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 11:15:59 -0700 (Sun, 23 Oct 2005)
Revision: 7985
Log message:
Whew, proved sqsimple{olang{'ops}}. This is a tedious, but straightforward
argument. It can be reproduced for Itt_hoas_lang!BTerm, but I just didn't
want to work with compatible_shapes as it is currently defined.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 18:43:40 -0700 (Sun, 23 Oct 2005)
Revision: 7986
Log message:
Yay! Proved the induction principle for the untyped lambda calculus
(Itt_hoas_ulambda).
I don't plan to prove any theorems, because they aren't interesting.
Instead, I'll restart the Fsub development.
At this point, I think it is best to move Itt_hoas_lang2 to full
experimental status, rather than "jyh" status. Let me know if
you disagree.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 18:53:14 -0700 (Sun, 23 Oct 2005)
Revision: 7987
Log message:
Doh, I forgot to prove list_sqsimple.
Changes | Path |
+1 -0 | metaprl/theories/itt/core/itt_list2.ml |
+1960 -1855 | metaprl/theories/itt/core/itt_list2.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 19:00:24 -0700 (Sun, 23 Oct 2005)
Revision: 7990
Log message:
Add the old POPLmark solutions.
Changes | Path |
Copied | metaprl-branches/jyh/naive-take1 |
Copied | metaprl-branches/jyh/naive-take2 |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 19:12:53 -0700 (Sun, 23 Oct 2005)
Revision: 7991
Log message:
Added initial empty naive POPLmark.
Changes | Path |
Properties | metaprl |
Properties | metaprl/theories/poplmark/naive |
Copied | metaprl/theories/poplmark/naive/OMakefile |
Copied | metaprl/theories/poplmark/naive/pmn_core_terms.ml |
Copied | metaprl/theories/poplmark/naive/pmn_core_terms.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 19:33:02 -0700 (Sun, 23 Oct 2005)
Revision: 7992
Log message:
Added the basic grammar.
Changes | Path |
+109 -0 | metaprl/theories/poplmark/naive/pmn_core_terms.mli |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 19:49:37 -0700 (Sun, 23 Oct 2005)
Revision: 7993
Log message:
Renamed tok_*_curly to tok_*_brace.
Added the toplevel grammar for FSub. By default, terms
are quoted (reflected terms).
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-23 20:21:36 -0700 (Sun, 23 Oct 2005)
Revision: 7994
Log message:
The initial POPLmark language is single-recursive, so types
and expressions can be arbitrarily mixed. We'll filter this
out with the typing rules.
Proved only some initial simple typing rules.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-25 15:55:47 -0700 (Tue, 25 Oct 2005)
Revision: 7995
Log message:
Defining more terms.
Changes | Path |
+21 -0 | metaprl/theories/poplmark/naive/pmn_core_terms.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-25 16:46:01 -0700 (Tue, 25 Oct 2005)
Revision: 7996
Log message:
Proved basic well-formedness lemmas for the terms.
Changes | Path |
+36 -0 | metaprl/theories/poplmark/naive/pmn_core_terms.ml |
+1381 -91 | metaprl/theories/poplmark/naive/pmn_core_terms.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-25 17:34:30 -0700 (Tue, 25 Oct 2005)
Revision: 7997
Log message:
In the generic term grammar, instead of requiring that bterms be escaped,
require that tuples be enclosed in parens.
That is, instead of this term,
"foo"{\x, y, z. x, y, z}
you write:
"foo"{x, y, z. (x, y, z)}
You may get slightly annoyed--instead of writing <:xterm< a, b >>, you
have to write <:xterm< (a, b) >>. However, I think the parens are good
style, and they are a simple solution to the bvars vs. tuples problem.
It *is* possible to define a grammar where you write
"foo"{x, y, z. x, y, z}
which is compatible with the existing term grammar. However, this
would require that we have one nonterminal for "non-variable" terms, and
another for terms with variables. For example, when you extend the
grammar, you would have write:
xterm_nonvar_term{'a +@ 'b} <--
xterm_any_term{'a}; tok_plus; xterm_any_term{'b}
But I think this would be too confusing to people (plus, the core grammar
size would double).
Let me know if you prefer the most general grammar.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-25 18:25:49 -0700 (Tue, 25 Oct 2005)
Revision: 7998
Log message:
Updated the generic term grammar so that opnames need to
be quoted less often. Basically, if an id is followed by
a left-brace, it is an opname. Here are some examples.
unit{} == << unit >>
lambda{x. x} == << lambda{x. 'x} >>
"unit" == << unit >>
Itt_rfun!lambda{x. x} == << Itt_rfun!lambda{x. 'x} >>
Also, first-order variables are not simple terms, so they
must be enclosed in parens for application lists. This is
basically because using ! for first-order variables was
an unfortunate choice (we might like !foo to be the term
!"foo").
Itt_rfun (!lambda) == << 'Itt_rfun 'lambda >>
However, opnames still need to be quoted for terms that have
parameters. The basic problem here is that variables are not
quoted, and sovars use the same square brackets as parameters.
number == << 'number >>
number[1] == << 'number[1] >>
"number"[1] == << number[1:n] >>
We could potentially require that all parameter lists include
constraints.
number[1] == << 'number[1] >>
number[1:n] == << number[1:n] >>
To me, this seems a little confusing.
Alternately (and this would require a fair amount of work), we could
require braces here too.
number[1]{} == << number[1:n] >>
number[1] == << 'number[1] >>
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-25 19:10:39 -0700 (Tue, 25 Oct 2005)
Revision: 7999
Log message:
Oops, I messed up the normal term parsing.
We have a slight problem with operator names. We would like
to write the following.
"operator"[(foo{x; y}):op]
However, this won't work because foo{x; y} parses
as xterm{[foo]; []; [x; y]}, so we get the following
term instead!)
<< operator[xterm{0; 0; 0}] >>
What we have to do instead is to use an iform to place
the term in the right context, so we have to use an
indirect production instead. I've chosen $, for the
following.
$lambda{x. x} == operator[(lambda{x. x}):op]
Changes by: Xin Yu (xiny at cs.caltech.edu)
Date: 2005-10-25 22:38:19 -0700 (Tue, 25 Oct 2005)
Revision: 8001
Log message:
Added the squash rule for all2.
Changes | Path |
+12 -0 | metaprl/theories/itt/core/itt_list2.ml |
+967 -781 | metaprl/theories/itt/core/itt_list2.prla |
Changes by: Xin Yu (xiny at cs.caltech.edu)
Date: 2005-10-25 22:40:13 -0700 (Tue, 25 Oct 2005)
Revision: 8002
Log message:
Changed the definition of compatible_shapes according to Jason's suggestion
and fixed broken proofs in itt_hoas_lang.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-26 16:39:32 -0700 (Wed, 26 Oct 2005)
Revision: 8004
Log message:
Minor changes from the courthouse.
Changes | Path |
+17 -0 | metaprl/theories/poplmark/naive/pmn_core_terms.ml |
Changes by: Xin Yu (xiny at cs.caltech.edu)
Date: 2005-10-26 18:50:26 -0700 (Wed, 26 Oct 2005)
Revision: 8005
Log message:
Fixed broken proofs in itt_hoas_bterm caused by the change in
the definition of compatible_shape.
Changes by: Xin Yu (xiny at cs.caltech.edu)
Date: 2005-10-26 22:06:42 -0700 (Wed, 26 Oct 2005)
Revision: 8006
Log message:
Eliminated compatible_depths.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-27 08:15:28 -0700 (Thu, 27 Oct 2005)
Revision: 8007
Log message:
Updated pmn_core_terms to use the new definition of compatible_shapes.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-27 15:16:31 -0700 (Thu, 27 Oct 2005)
Revision: 8008
Log message:
Added a listing of all the primitive rules in the core
Changes | Path |
Added | metaprl/theories/itt/extensions/pairwise-verification.txt |
Properties | metaprl/theories/itt/extensions/pairwise-verification.txt |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-27 16:07:03 -0700 (Thu, 27 Oct 2005)
Revision: 8009
Log message:
Making some progress re-verifying the rules under the pairwise functionality semantics
Changes | Path |
Copied | metaprl/theories/itt/extensions/pairwise-verification.ml |
Deleted | metaprl/theories/itt/extensions/pairwise-verification.txt |
Changes by: Yegor N. Bryukhov (ybryukhov at gc.cuny.edu)
Date: 2005-10-27 16:17:51 -0700 (Thu, 27 Oct 2005)
Revision: 8010
Log message:
Bringing mptop.bat in sync with the changes made in mpopt.bat long ago.
"set /P INCLUDES <theories.dir" is incorrect, the correct version is "set /P INCLUDES= <theories.dir" with equality after the variable name.
Changes | Path |
+2 -2 | metaprl/editor/ml/mptop.bat |
Changes by: Alexei Kopylov (kopylov at cs.caltech.edu)
Date: 2005-10-27 16:58:48 -0700 (Thu, 27 Oct 2005)
Revision: 8011
Log message:
proof of list_wf2
Changes | Path |
+869 -879 | metaprl/theories/itt/core/itt_list2.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-27 17:53:12 -0700 (Thu, 27 Oct 2005)
Revision: 8012
Log message:
Fixed a few of "unused variable" warnings. These have uncovered a real bug -
the code intended to only listed on localhost when SSL is disabled, but was in
fact listening on "any", regardless of whether SSL is enabled or not.
Changes | Path |
+1 -1 | metaprl/mllib/env_arg.ml |
+2 -2 | metaprl/mllib/http_simple.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-27 18:03:15 -0700 (Thu, 27 Oct 2005)
Revision: 8013
Log message:
Added Itt_hoas_lang.dest_bterm_mk_bterm3.
If you are currently working in Itt_hoas_lang, feel free to
discard my proof, since it is trivial.
Changes | Path |
+14 -0 | metaprl/theories/itt/reflection/experimental/itt_hoas_lang.ml |
+1852 -1680 | metaprl/theories/itt/reflection/experimental/itt_hoas_lang.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-27 19:10:22 -0700 (Thu, 27 Oct 2005)
Revision: 8017
Log message:
When using camlp4, pass "-loc _loc" argument to get the location variable in
generated code called "_loc" instead of "loc". This is necessary for
compatibility with 3.09, where "_loc" is the default. In turn, the "_loc"
default is necessary in 3.09 because variables that start with an underscore.
are extempt from the "unused variable" warnings.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-27 19:24:43 -0700 (Thu, 27 Oct 2005)
Revision: 8019
Log message:
Updating the magic digest to match recent libmojave changes.
Changes | Path |
+1 -1 | metaprl/filter/base/filter_magic.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-27 19:47:53 -0700 (Thu, 27 Oct 2005)
Revision: 8020
Log message:
Addressing a number of "unused variable" warnings.
Changes by: Yegor N. Bryukhov (ybryukhov at gc.cuny.edu)
Date: 2005-10-27 21:29:47 -0700 (Thu, 27 Oct 2005)
Revision: 8021
Log message:
1.Minor optimization in itt_int_arith.ml
2.Enabled the use of equality in conclusions in ge_intro
3.Added (a=b in nat) to ge_intro.
It already had (a in nat) but this was insufficient.
I think I need to add an option ge_intro that would prohibit to use equality lemmas for membership goals.
Changes | Path |
+12 -17 | metaprl/theories/itt/core/itt_int_arith.ml |
+6 -0 | metaprl/theories/itt/core/itt_nat.ml |
+1931 -1667 | metaprl/theories/itt/core/itt_nat.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 02:53:46 -0700 (Fri, 28 Oct 2005)
Revision: 8022
Log message:
Rearranged the config file, moving more "novice-friendly" variables (suth as
THEORIES) closer to the top.
Changes | Path |
+48 -45 | metaprl/mk/make_config |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 03:01:58 -0700 (Fri, 28 Oct 2005)
Revision: 8023
Log message:
Issue 537: complain if "omake check-status" is called with an inappropriate
compilation mode.
Changes | Path |
+8 -1 | metaprl/OMakefile |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 03:25:33 -0700 (Fri, 28 Oct 2005)
Revision: 8024
Log message:
- Issue 538: At the end of the build process, delete any outdated binaries in
editor/ml.
- Issue 539: Added an MPRUN_ENABLED variable that controls whether to build
the mp.run binary (defaults to false)
- Renamed the old editor/ml/mp script into editor/ml/mprun (for consistency).
- Updated the mpopt/mptop scripts to give a better error message when the
corresponding binary does not exist.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 03:39:44 -0700 (Fri, 28 Oct 2005)
Revision: 8025
Log message:
Create a symlink editor/ml/mp -> editor/ml/mpopt (or top) so there is always a
"canonical" way of starting MetaPRL, regardless of the compilation mode. On
Windows, copy the appropriate .bat into editor/ml/mp.bat
Changes | Path |
Properties | metaprl/editor/ml |
+23 -22 | metaprl/editor/ml/OMakefile |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 05:39:12 -0700 (Fri, 28 Oct 2005)
Revision: 8026
Log message:
More work on eliminating unused variable (and addressing bugs that are
revealed in the process).
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 05:48:11 -0700 (Fri, 28 Oct 2005)
Revision: 8027
Log message:
Trying to come up with code that would compile equally well under OCaml
versions 3.08 and 3.09 despite the MLast.ctyp type being slightly different.
Changes | Path |
+7 -2 | metaprl/filter/base/filter_ocaml.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 07:25:32 -0700 (Fri, 28 Oct 2005)
Revision: 8028
Log message:
More "loc" -> "_loc" changes
Changes | Path |
+1 -1 | metaprl/editor/ml/shell_mp.ml |
+8 -8 | metaprl/editor/ml/shell_p4.ml |
+1 -0 | metaprl/filter/filter/filter_prog.ml |
+2 -2 | metaprl/support/shell/shell_state.ml |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 08:06:43 -0700 (Fri, 28 Oct 2005)
Revision: 8029
Log message:
More changes related to chaising unused variables
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 11:47:14 -0700 (Fri, 28 Oct 2005)
Revision: 8030
Log message:
Expanding more boilerplate.
Aleksey, take a look at Term_man_ds.declared_vars and see if you
think it should really return the vars in reverse order.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 12:01:53 -0700 (Fri, 28 Oct 2005)
Revision: 8031
Log message:
Eliminating yet another unused variable.
Changes | Path |
+1 -1 | metaprl/editor/ml/nuprl_jprover.ml |
Changes by: Alexei Kopylov (kopylov at cs.caltech.edu)
Date: 2005-10-28 16:47:39 -0700 (Fri, 28 Oct 2005)
Revision: 8032
Log message:
proved some theorems abot max in list2
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 17:10:43 -0700 (Fri, 28 Oct 2005)
Revision: 8033
Log message:
Some additional edits from the courthouse.
I'm planning on revising Itt_hoas_lang2 to try and help
simplify some of the arithmetic goals. Let me know if this
will cause problems.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-28 17:59:23 -0700 (Fri, 28 Oct 2005)
Revision: 8034
Log message:
(Alexei and Aleksey)
We moved out the Itt_rfun module out of the Itt core, turning it into an
extension. Now Itt_dfun is a primitive theory and is no longer being derived
from Itt_rfun.
The Itt_rfun module and related theories (such as a module containing
the derivation of the dependent functions from Itt_rfun - this module is now
called Itt_dfun_imp) is currently in theories/itt/extensions/rfun. **Note**
this directory is _not_ yet part of the build, but this should be easy to fix
(will do it next; but wanted to commit the core changes fast to reduce the
possibility of conflicts).
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 19:14:45 -0700 (Fri, 28 Oct 2005)
Revision: 8035
Log message:
Fixed the proofs in itt_hoas_bterm, and moved some of the standard
junk into it.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 19:18:44 -0700 (Fri, 28 Oct 2005)
Revision: 8036
Log message:
Moving Itt_hoas_lang2 to Itt_hoas_olang.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 19:55:05 -0700 (Fri, 28 Oct 2005)
Revision: 8038
Log message:
Derive Itt_hoas_lang from Itt_hoas_bterm.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 20:21:22 -0700 (Fri, 28 Oct 2005)
Revision: 8039
Log message:
Move utilities into Itt_hoas_util.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 20:28:06 -0700 (Fri, 28 Oct 2005)
Revision: 8040
Log message:
Remove the generic bterm wf rules.
Changes | Path |
+0 -11 | metaprl/theories/itt/reflection/experimental/jyh/itt_hoas_olang.ml |
+2570 -3723 | metaprl/theories/itt/reflection/experimental/jyh/itt_hoas_olang.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-28 21:23:32 -0700 (Fri, 28 Oct 2005)
Revision: 8041
Log message:
Fixed Pmn_core_terms.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 10:26:11 -0700 (Sat, 29 Oct 2005)
Revision: 8042
Log message:
Separated the languages of TyExp and Exp.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 10:29:21 -0700 (Sat, 29 Oct 2005)
Revision: 8043
Log message:
Renamed dest_exp to dest_fsub_exp
Changes | Path |
+14 -14 | metaprl/theories/poplmark/naive/pmn_core_terms.ml |
+2 -2 | metaprl/theories/poplmark/naive/pmn_core_terms.prla |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 11:27:59 -0700 (Sat, 29 Oct 2005)
Revision: 8045
Log message:
Finished for now with the terms.
Changes | Path |
+81 -0 | metaprl/theories/poplmark/naive/pmn_core_terms.ml |
+1219 -1049 | metaprl/theories/poplmark/naive/pmn_core_terms.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-29 11:29:43 -0700 (Sat, 29 Oct 2005)
Revision: 8046
Log message:
MetaPRL is now compatible with OCaml 3.09 (while retaining compatibility with
3.08).
Changes | Path |
+6 -3 | metaprl/mk/defaults |
+0 -11 | metaprl/theories/itt/applications/supinf/itt_supinf.ml |
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 11:34:04 -0700 (Sat, 29 Oct 2005)
Revision: 8047
Log message:
Move most of the experimental/jyh files into experimental/ proper.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 14:58:40 -0700 (Sat, 29 Oct 2005)
Revision: 8048
Log message:
Starting work on quoted sequents.
for the time being I've decided to use the Term_std representation,
rather that the representation Aleksey was suggesting (with a list of
term of increasing depth).
Pattern matching seems easier with the Term_std representation,
because we can write things like the following, and they actually
make sense (I think:)
$`[d] sequent { <H>; x: T; <J> >- 'T }
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 16:55:01 -0700 (Sat, 29 Oct 2005)
Revision: 8049
Log message:
Added "native" sequents, where the reflected sequent is not a BTerm.
This is probably easier to use than a fully-reflected sequent, so
it is easier to use, as long as the reflected language does not
contain sequents.
We _could_ add fully-refected sequents, where the hyp list is
a reflected Itt list, but reflecting the Itt_list* theories would
be a pain.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 17:01:26 -0700 (Sat, 29 Oct 2005)
Revision: 8050
Log message:
Removing the earlier version of sequents.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-29 20:40:42 -0700 (Sat, 29 Oct 2005)
Revision: 8051
Log message:
Added the OMakefile needed for building the itt/extensions/rfun theory.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-29 20:47:36 -0700 (Sat, 29 Oct 2005)
Revision: 8052
Log message:
Added initial quoting of rules--this currently only works for sovars/cvars
without any arguments. Arguments need more work, I'll fix it next
(it is hard). See Pmn_core_judgments for the current trivial example.
For each reflected logic, we add the rules as type *checking* predicates
on steps in a derivation. A derivation is valid iff all the steps check
and all the terms in it are well-formed. A proof is the least-fixed-point
of the derivations (using srec). A term is provable if it is the final
term in a derivation. srec gives us proof induction.
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-29 21:43:53 -0700 (Sat, 29 Oct 2005)
Revision: 8053
Log message:
Resurrected Itt_dprod_imp
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-30 09:45:39 -0800 (Sun, 30 Oct 2005)
Revision: 8055
Log message:
Added the subtyping rules for FSub.
Finished rule quoting. It includes both context and term arguments to
second-order variables and contexts, which turn into the appropriate
bind/subst forms.
Of course, this means that there are bind/subst everywhere-- who
knows if this will actually be useable. The next step is defining the
least-fixed-point with srec, then we'll see.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-30 19:03:45 -0800 (Sun, 30 Oct 2005)
Revision: 8056
Log message:
Proved all the rules in Itt_list2 without using Itt_pairwise.
The proofs are longer, and they could be improved, but they work.
Also added rules for exists_list. exists_elim is espcially weak,
but it is hard to see how to remove all the wf subgoals.
Changes by: Jason Hickey (jyh at cs.caltech.edu)
Date: 2005-10-31 18:39:23 -0800 (Mon, 31 Oct 2005)
Revision: 8057
Log message:
One problem with using srec to define the derivations is that it
requires a particular universe level.
It may be better to use the union of the finite unrollings,
so I'll try it.
Note that the type of proof rules already uses a universe level--
a proof checker has the type (ProofStep -> univ[1]). At the
moment, I doubt this needs to be polymorphic. However, it is
possible to imagine some very strange logics with larger types...
Changes | Path |
+3074 -599 | metaprl/theories/itt/reflection/experimental/itt_hoas_sequent_native.prla |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-31 19:47:25 -0800 (Mon, 31 Oct 2005)
Revision: 8061
Log message:
MetaPRL should use libmojave trunk as well.
Changes | Path |
Properties | metaprl |
Changes by: Aleksey Nogin (nogin at cs.caltech.edu)
Date: 2005-10-31 21:03:08 -0800 (Mon, 31 Oct 2005)
Revision: 8065
Log message:
Updating the magic to match the recent libmojave changes.
Changes | Path |
+1 -1 | metaprl/filter/base/filter_magic.ml |