#
b72e391c |
|
20-Mar-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move smpp to Portable - get everything up to arithmeticScript working
|
#
3f252166 |
|
13-Mar-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Work towards use of PolyML.pretty type for most pretty-printing Compiles up to src/parse under Poly/ML
|
#
a86cc43e |
|
07-Mar-2017 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Provide fn for users to specify ML dependencies for theories This will be useful when a theory wants to export a specific pretty-printing or parsing function. For example, the special printing of if-then-else is not properly exportable at the moment because there is no way to capture it as a string in a theory file. The ultimate intention is to give it a name in a special dictionary, and to make the theory depend on ML code that implements the function and inserts it into that dictionary under the user's choice of name.
|
#
fa09c98c |
|
27-Sep-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Unhide auxiliary TFL defns for nested recursions These, with names including "_aux_" typically need to be visible so that termination reasoning about the "pre-constant" can go ahead. Failing to get this right caused the unification examples to fail.
|
#
d680453c |
|
27-Sep-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Stop temp consts from being added to grammar This means that they can't be named directly, and can only be accessed with the $ notation. Also make the "_tupled" constants used internally by tfl be temporary constants of this form so they don't get added either.
|
#
36dc75d1 |
|
18-Sep-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Give Theory Data writers access to term-writing Just as readers get an additional parameter of type string -> term, writers will get a parameter of type term -> string.
|
#
ef9ff047 |
|
17-Sep-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Make theory data types provide terms function This function takes a value of the theory-data type and returns a list of terms that are contained inside this value. The machinery will use that to prime the theory's sharing tables to allow for efficient recording of terms in data.
|
#
9fa81883 |
|
17-Sep-2016 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Give ThyData access to a term-reader function No useful way to exploit this just yet, but the code compiles and I think the refactoring is right.
|
#
e8457c3a |
|
23-Mar-2016 |
Anthony Fox <anthony.fox@cl.cam.ac.uk> |
Add Theory.quote_adjoin_to_theory. Use this in llistTheory. This should close #304. This has been implemented using a new function Portable.quote_to_string_list. Other uses of adjoin_to_theory under src/ have been updated.
|
#
5d03167e |
|
04-Feb-2015 |
Piotr Trojanek <piotr.trojanek@gmail.com> |
code style: space after parenthesis in "(x*y)list"
|
#
32bf1e49 |
|
02-Feb-2015 |
Piotr Trojanek <piotr.trojanek@gmail.com> |
extra semicolons removed from (some) .sig files
|
#
ef72cbeb |
|
19-Jan-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
WIP fixing problems with 57d38bd4
|
#
20934744 |
|
25-Feb-2014 |
Ramana Kumar <ramana@member.fsf.org> |
Add gen_new_specification and remove prim_constant_definition Implement new_definition in terms of gen_prim_specification. Leave the existing new_specification in place. This plan of attack suggested by RDA. Have only touched the standard kernel, and none of the theories. Next steps would include updating the other kernels, implementing new_specification in terms of gen_new_specification (at some point after pairTheory), and removing uses of new_specification before pairTheory one by one if possible/desired...
|
#
abce3c6f |
|
25-Feb-2014 |
Ramana Kumar <ramana@member.fsf.org> |
Revert "start experimental implementation of revised new_specification" This reverts commits 7f58ad8, eae01bc, and c07a105.
|
#
eae01bc3 |
|
21-Feb-2014 |
Ramana Kumar <ramana@member.fsf.org> |
remove Theory.new_specification and reimplement new_definition in terms of the revised Thm.prim_specification. obviously this breaks anything that depended on Theory.new_specification, so the next job is to rework those things (and write a backwards-compatible version, but later in the build sequence because it needs pairs.)
|
#
7f58ad80 |
|
19-Feb-2014 |
Ramana Kumar <ramana@member.fsf.org> |
start experimental implementation of revised new_specification Based on Rob Arthan's "HOL Constant Definition Done Right". The tricky part is deciding how and where to implement the existing definitional rules that are theoretically subsumed by the new one.
|
#
89682e3a |
|
02-Aug-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Allow thy-data to be set to a value as well as merged with what's there.
|
#
f34d21ce |
|
01-Aug-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
More theory signature events now reported to hooks. In particular, {new,remove}{typeOp,constant} events are reported. Use this to do away with some of the cruftiness in boolLib whereby the entry-points there had to mask the primitive principles in order to update the grammar. Now the parser installs hooks to watch for things being deleted or added and adjusts the grammar as it goes. The disadvantage is that it's impossible to bypass these changes to the grammar.
|
#
bb9eb667 |
|
31-Jul-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Rework various Theory hooks into one general framework. The basis for the framework is the TheoryDelta type. Client code can ask to be notified of theory changes, and will have their provided call-back function called at appropriate times. This commit hasn't adjusted the theory functions for {add,del}{const/typeOp} yet; it has just unified the existing functionality (register_onload, after_new_theory and register_onexport).
|
#
a21bb98f |
|
12-Apr-2012 |
Ramana Kumar <ramana.kumar@gmail.com> |
Add onexport hooks to Theory You can register a function to be called whenever export_theory is called subsequently, for example for a library to do some cleanup before a theory using that library is exported.
|
#
2a4c14a6 |
|
06-Jun-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Moved prekernel/FinalTheory-sig.sml to be postkernel/Theory.sig. This simplifies the core a little.
|
#
5f99e73a |
|
15-Dec-2010 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
BIG refactor: mainly to allow stdknl to use SharingTables technology. SharingTables implements hash-consing for types as they are written out to disk. This can make a big difference to the theory file size, and thus to theory-loading times. The big visible change is that Theory, TheoryPP and Definition are no longer really part of the kernel, and are found in src/postkernel instead. They don't need to know about secret implementation details in terms, types or theorems. They do need to have access to Term.{write,read}_raw and primitive definition principles (which are in Thm). Another API change is that Tags no longer use user-visible string refs to record use of axioms. Instead, the refs are hidden behind a new Nonce type. This in turn means that the Tag.axioms_of function can move to be visible to all users after the kernel. (If we kept the axioms as string refs, users could alter the strings being pointed to.)
|