-
Notifications
You must be signed in to change notification settings - Fork 92
Split data_to_word's assign_def into a function for each op #534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
This version is broken
Hopefully without too strong assumptions... This proof will not work when Install is added back.
Contributor
Author
|
The regression test revealed a problem. I'm temporarily closing this PR. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This makes running
Holmakeondata_to_wordScript.smlmuch fasterand the
assignfunction is no longer as intimidating.