Preparation for Twelf 1.5 Externally visible changes: - twelf-mode: twelf-batch-chatter The variable twelf-batch-chatter causes Twelf to temporarily change chatter levels while checking/appending a config or loading a file. Reducing twelf-batch-chatter relative to twelf-chatter (to "2", for example) speeds the loading of large configs while keeping Twelf verbose enough during interactive use. - Config.append skips reloads of up-to-date files Config.append now reloads only those files (1) that have been modified since the last Config.load or Config.append, or (2) that depend on any such modified files. (This may cause unexpected behavior in the presence of constructs that modify global state, such as pragmas and clauses used in operational semantics.) - twelf-mode: C-c C-a runs twelf-save-append-config - twelf-mode: twelf-check-config-clears-server-buffer If non-nil, twelf-check-config-clears-server-buffer causes twelf-check-config to clear the server buffer before any new output is written. Prevents long-running *twelf-server* buffers from consuming too much memory. Preparation for Twelf 1.4 Externally visible changes: - %clause definitions %clause d : A = M. behaves like d : A. for proof search - %freeze a1 ... an. will freeze families a1 ... an - Twelf.Recon structure to trace type reconstruction - family-level definitions are now allowed, opaque to proof search - Tabled abstract machine %querytabled n A. will try to solve A in n stages. Evaluation will stop after n stages, even if evaluation is not complete. If the evaluation is completed after k stages, and k less than n, then evaluations stops after k stages. global search parameters: * Twelf.TableIndex.strategy : default variant checking Twelf.TableIndex.strategy := Twelf.TableIndex.Subsumption Twelf.TableIndex.strategy := Twelf.TableIndex.Variant * Twelf.TableIndex.strengthen : default true apply strengthening during abstraction on term (strengthening on hypothesis is not yet implemented) * term depth : (very experimental)) forces the abstract machine to suspend a goal, if the termdepth is exceeded. default : termdepth = NONE (not used in default mode) - mode checking can now be done post-hoc - %mode and %covers allows mutual declarations (using paren syntax) - %covers mdec. (where mdec is mode declaration) - %total tdec. (where tdec is termination declaration) - %worlds wdec callpats. (where wdec is worlds declarations) Internal changes: - made SML'97 compliant and ported to MLton, PolyML, and SML/NJ >= 110.20 this was achieved by partial de-functorization. README for Twelf 1.3 Major internal update to Twelf 1.2, available as alpha release. Externally visible changes: - Constraints Type reconstruction and the logic programming engine (but not yet the theorem prover) allow various constraint domains in the style of constraint logic programming languages. The main ones are equalities and inequalities over rationals and integers. - Tracing and Breakpoints The logic programming engine now support tracing and setting of breakpoints for illustration and debugging purposes. - Theorem Prover The theorem prover now allows quantification over regular context. The theorem prover will also use previously proved theorems with %prove) and ignore those with %establish, which is otherwise equivalent. In unsafe mode, %assert can be used to claim theorems. However, at present no longer generates proof terms. - Reduction Checking The termination checker has been extended to verify if output arguments to a predicate are smaller than some inputs with the %reduces declaration. - Signature Printing Signatures can now be printed, also in TeX format. - Abbreviations Added abbreviations (%abbrev) which, unlike definition, do not need to be strict. - Name Preferences Name preference declarations (%name) now allow an optional second argument for naming of parameters. ---------------------------------------------------------------------- ---------------------------------------------------------------------- README for Twelf 1.2R4 Major internal update to Twelf 1.2. Externally visible changes: - bug fixes (through twelf-1-2 pl5) - definitions need not be strict - %name takes optional second argument (prefered name for parameters) - %assert after Twelf.unsafe := true; is like %prove without proving anything - %establish like %prove, but result will never be used as a lemma in future %prove - Twelf.Print.sgn and Twelf.Print.prog print signature - Twelf.Print.TeX.sgn and Twelf.Print.TeX.prog print signature in TeX format (see .../twelf/tex/ directory) - Added tracing and breakpoints/stepping in operational semantics. Recommended: use pull-down menus in Emacs, since documentation has not been written yet. - Theorem prover has been generalized, but is not yet stable or documented. Old %theorem commands should (mostly) still work. ---------------------------------------------------------------------- Notes on 1.2 => 1.3 ? Add remark about optimize ? Remark about "mixed substitution incompleteness" ? add %_unprintable_% and appropriate action to type reconstruction. + Add remark about "%assert" and "safe mode" + Add remark about "%establish" and "%prove" + Add Twelf.unsafe + Added Chapter on constraints + Added section of reduction checking + Edited section on theorem prover + Add Twelf.Print.sgn + Add Twelf.Print.prog + Add TeX remarks + Add Twelf.Print.TeX.sgn and prog + Add tracing. + %name takes optional second argument + Prefix argument to a few command now selects the server buffer + Add Twelf.make + Remove strictness remarks / %abbrev + fixity operators can now take additional arguments + add Twelf prover doc /afs/cs/project/twelf/www/alpha/twelf-prover.html + add reduction doc /afs/cs/user/bp/www/twelf/twelf-reduction.html