Skip to content

Conversation

@myreen
Copy link
Contributor

@myreen myreen commented Oct 8, 2018

This makes running Holmake on data_to_wordScript.sml much faster
and the assign function is no longer as intimidating.

xrchz and others added 30 commits August 19, 2018 09:38
Previously the incrementral compiler had as its state the same g as
the initial compiler, which carries around all of the generated code
in g. Using such a state for the incrementral compiler is terrible as
all of the already installed code would need to be kept forever.

My original plan was to split subg into two parts: one for the num_set
and one for the generated code. Howver, that turned out to require
essentially redoing the entire clos_call proof.

I opted for a more local approach whereby the incrementral compiler
has only the num_set in its state and, in the proof, recreates the
code part from the current code. This approach seems to work, but has
the slightly awkward case of specifying the code part for the limit
state.
Rather than prove an injectivity result by considering quadratically many
constructor-pair cases, prove the inversion result first (hopefully
only a linear number of cases) and use this to show injectivity.

Also make the inversion result more robust in the face of variable
name choices.
Install returns the value of the last element when the list
contains more than one expression. An empty list causes a
type error. (The compiler will never install an empty
expression list.)

Note that this commit leaves a cheat in closProps for
evaluate_add_to_clock_io_events_mono which has a strange
looking proof.
And update flat_to_patProof
myreen and others added 28 commits October 5, 2018 22:06
Hopefully without too strong assumptions...
This proof will not work when Install is added back.
@myreen
Copy link
Contributor Author

myreen commented Oct 8, 2018

The regression test revealed a problem. I'm temporarily closing this PR.

@myreen myreen closed this Oct 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants