#
7306534b |
|
04-Nov-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Again allow ancestral data to consume deltas all at once on theory-load This allows named simpset-fragments to be added to srw_ss. This then allows those fragments to be easily removed with calls to diminish_srw_ss. In the 'fix-ancestry' rework this ability was removed but this did break proofs when diminish_srw_ss calls had no effect. Selftest in coretypes demonstrates this with removal of the "one" fragment.
|
#
351502c7 |
|
28-Oct-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Fixes to make sure that uptodate checks work properly Existing regression tests now pass
|
#
9168664f |
|
26-Oct-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Present IndDefLib's rule-induction-map as a theorem-set with ancestry Only required change to the underlying API is to acknowledge that a call to merge may result in no value if none of the desired parents have a value either.
|
#
1b093056 |
|
26-Oct-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Add export_with_ancestry to ThmSetData signature It compiles but is completely untested
|
#
2b23ef34 |
|
20-Oct-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Improve efficiency of encoding of lists of thm names in ThmSetData
|
#
d3dc93f8 |
|
20-Oct-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Make grammar-deltas s-expressions when stored in theory .dat files This makes them more legible, and is also a prelude to being more uniform in the treatment of theory data that merges deltas across ancestors.
|
#
ca1d20c4 |
|
18-Oct-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Tweak ThmSetData API: take callbacks with more honest types In particular, the callbacks are always only ever called on singleton lists, so it seems silly to ask the user for functions with types that have lists.
|
#
0801c6f2 |
|
12-Oct-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Simplify grammar handling by using abstract ancestral data framework This is not fully worked out yet, and the abstract framework has only been instantiated on the one test-case. It's definitely worth it there though as there can be less awful code smashed into fooTheory.sml files as a result. Aim is to instantiate theorem-sets in the same way though so that it will be possible to access srw_ss() as it was at different points in the theory hierarchy. Not yet clear if AncestryData should be responsible for holding onto the underlying references that hold the global "values" (grammars, simpsets, etc). Changes in examples fix various adjoin calls that either shouldn't be there at all (TypeBase now has export; or need to be made "after completion" so that parses work correctly (these should be using exportable data themselves)).
|
#
bb0dcafa |
|
05-Feb-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Change "thm-names" (used in various places) to be Thy-Name record This saves on pulling things apart and looking for dots and the like. It changes the simpLib API (most significantly for the SSFRAG function which builds simpset fragments).
|
#
7ac36a38 |
|
04-Feb-2020 |
Michael Norrish <michael.norrish@data61.csiro.au> |
Allow users' theory data to share/hash embedded strings
|
#
327a1fff |
|
14-Aug-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Allow theorems to be stored "locally", with local attributes Such theorems are not stored in the exported theory, but do temporarily affect the global contexts that their attributes point at. The test-case illustrates this, with a local simp not visible in the later theory.
|
#
d9d262ad |
|
20-Apr-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change ThmSetData to store just theorem names in .dat files The recent changes to this file caused theorem values to also be stored; this is unnecessary (the references must be to existing theorems), and wastes space in the .dat file, and presumably in what's loaded. I'm unsure as to why the stored name changed in the simpset machinery (requiring a change to delsimps1Script.sml), but I'm going to change the way simpset modification happens anyway.
|
#
b98f5ead |
|
10-Apr-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Be more careful over handling of ThmSetData and rebinding of thm names In particular, it was previously possible to do val thm = store_thm("thm[some_attribute]", tm1, tac2); val thm = store_thm("thm", tm2, tac2); and have the second thm be exported but to pick up the attribute from the first call. This is clearly outrageous, so now the attribute is lost when the second theorem is slotted into the theory. Working through all this found three places where this double-definition pattern was happening (there may yet be more). In src/finite_map and src/list the second theorem was clearly just redundant and could be deleted. The example in fun-op-sem is slightly more interesting: there it defines a function (which definition gives that function a "compute" attribute), and then restates the definition, saving it under the same name ("foo_def"). Though arguably bad style, it's important that the second theorem replace the first, and that it should have the "compute" attribute. Here the change is to explicitly add that attribute to the second theorem. Finally, all this work revealed that Theory.sml's handling of the NewBinding theory-delta hook was wrong and caused changes to be dropped after the hook function was called. Debugging *that* led me to add a pp field to the LoadableThyData registration process so that theory-data values could be inspected more easily. There is also a trace variable to turn on some debugging output in Theory.
|
#
1c4f83dd |
|
07-Apr-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Rework ThmSetData implementation to use Theory s-expressions This makes the encoding more robust, particularly if set "removal instructions" might include space characters.
|
#
c29ee710 |
|
05-Apr-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Refactor handling of thm attributes ("simp", etc) into new module A slight backwards incompatibility is that this removes the ability for script files to declare new attributes (hence removal of attr[12]Script.sml from src/1/theory_tests). This facility is used vacuously in CakeML once.
|
#
040b4578 |
|
21-Mar-2019 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Rework persistent ThmSetData API to allow for "removal" of elements The removals are strings encoding removal "instructions", which are up to the underlying consumer to interpret. Still to test any of this new machinery, but the old behaviours have been preserved.
|
#
b72e391c |
|
20-Mar-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Move smpp to Portable - get everything up to arithmeticScript working
|
#
09c5dc00 |
|
14-Mar-2018 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Up to and boolTheory and slightly beyond
|
#
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.
|
#
2c29276d |
|
04-Nov-2015 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
ThmSetData passes thms *and* names to consumers The names were always available, but the API now changes so that consumers get names as well as theorem values. They can ignore the names of course. (In this context, consumers are things like the stateful rewriter, the monotonicity rule database, the TFL congruence rule database etc.) This will be helpful in allowing the stateful simpset to know what its theorems are called, which is progress with Github issue #313 (to allow easy removal of rewrites from a call to the simplifier).
|
#
8f621d74 |
|
28-Apr-2014 |
Michael Norrish <michael.norrish@nicta.com.au> |
Bug fix (w/test case) for ThmSetData's new way to add theorems Problem was that the callback function attached to the set didn't get called, even though the theorem was successfully exported. This meant that a set like "simp" (which feeds into srw_ss()) didn't prompt any change to the stateful simpset. Being successfully exported did at least mean that the theorem would get into the simpset in descendent theories.
|
#
fc7e14b1 |
|
25-Apr-2014 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Test for ThmSetData bug fixed in 8ffc5dc0b; prettify adjoined SML output
|
#
8ffc5dc0 |
|
25-Apr-2014 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Fix bug in SML emitted/adjoined by new_storage_attribute.
|
#
d212bd38 |
|
23-Apr-2014 |
Michael Norrish <michael.norrish@nicta.com.au> |
Implement new scheme to allow simple addition of theorems to theorem "sets". When saving or storing theorems, simply add [name1,name2] strings to the end of the binding, and the theorem being saved will be added to the theorem set with that name.
|
#
6204c3bf |
|
17-Oct-2013 |
Michael Norrish <michael.norrish@nicta.com.au> |
Make ThmSetData handle empty/null data as input. Closes #130
|
#
00207182 |
|
17-Oct-2013 |
Michael Norrish <michael.norrish@nicta.com.au> |
Get better diagnostic messages out of ThmSetData warnings.
|
#
63671324 |
|
06-Aug-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Use hook for binding-deletion to make ThmSetData more robust. Test-case also uses WARNINGs_as_ERRs to check that nothing untoward gets warned about in the second theory (the one that imports the theory which has had lots of delete_{const,binding} events).
|
#
1bb5dd5f |
|
02-Aug-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Adjust (and reduce) interface to ThmSetData. The change is to add an extra string parameter to the callback function that the client provides. This is the name of the theory which has stored the theorems. This change prompted the changes to computeLib, IndDefLib and DefnBase. The reduction was to remove the ThmSetData's new function, forcing BasicProvers to use new_exporter. This was possible because of the extra information provided to its call-back. I also wrote some test-cases mimicking the original problem that Magnus and Ramana had, and prettied the warning output. This closes #73.
|
#
85526c7c |
|
02-Aug-2012 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Get stored ThmSets to notice deletion of relevant consts. This is progress with #73.
|
#
f6cae76a |
|
01-Aug-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Provide lookup functionality across all stored theorem sets.
|
#
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).
|
#
ccba08b7 |
|
30-Jul-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Make theorem-set loading more robust in face of bad thm-names. Most attempts to mess with the data will be caught at specification time, but use of delete_const and friends can cause theorems to not get exported even if they were present when the call to export_X was made.
|
#
a9cba522 |
|
30-Jul-2012 |
Michael Norrish <michael.norrish@nicta.com.au> |
Delete some unused code in ThmSetData.sml
|
#
1bc9f344 |
|
13-Jan-2011 |
Michael Norrish <Michael.Norrish@nicta.com.au> |
Change src/bool to src/1 as a prelude to experimentation!
|