Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
sgdt
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
gradual-typing
sgdt
Commits
3e3acf2a
Commit
3e3acf2a
authored
6 years ago
by
Max New
Browse files
Options
Downloads
Patches
Plain Diff
checkin for saefty
parent
1b8dadef
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
talk/popl-winter-2019/outline.org
+74
-0
74 additions, 0 deletions
talk/popl-winter-2019/outline.org
talk/popl-winter-2019/popl-talk.key
+0
-0
0 additions, 0 deletions
talk/popl-winter-2019/popl-talk.key
with
74 additions
and
0 deletions
talk/popl-winter-2019/outline.org
+
74
−
0
View file @
3e3acf2a
...
...
@@ -86,3 +86,77 @@
- CBPV is a convenient metalanguage to prove results for many
different evaluation orders
- Our models suggest new
* DONE Slides
** TODO Intro (Small)
- [ ] Our Approach/Contributions: make a diagram for
this. Semantics -> Soundness flips to Soundness -> Semantics
** TODO (Small) Principles
- [ ] smooth out
- [ ] citation
** TODO (Large) Axioms
- [ ] Term Precision
- [ ] Errors
- [ ] beta, eta using equidyn
- [ ] Specifying Casts
** TODO (Large) Theorems
- [ ] Uniqueness Principles
- [ ] Explain the consequences of this.
- [ ] EP Pairs? Compositionality? Maybe just have a "and many more slide"
** TODO (Small) Models
- [ ] Make own mini-section
** TODO (Medium) Wrap-up
- [ ] Related Work: Thiemann?
- [ ] Future Work
- [ ] Better Conclusion slide
Next: Axioms
* TODO Practice
** DONE Script Runthrough
- [X] Intro
- [X] Soundness
- [X] Axioms
- [X] Theorems
- [X] Wrapup
** TODO Practice Practice Practice
*** It's too long
- too much: details of call-by-push-value
- too much: eta laws?
- too much: intro, didn't get to what we do for like 11ish minutes?
- too much: talk about precision, congruence rules, beta-eta principles
- I don't think it's important to go over the typing for instance
- Combine F, U into one slide, then show the cbv/cbn translations
into CBPV
- transition from cast semantics to axiomatic semantics is not
clean
*** Amal notes
- put these in final slide?
- emphasize the axioms to derivations more
- emphasize reasoning principles rather than type safety
- future work: more complex type features
** Questions
- What about blame?
- We don't give a treatment of blame in the paper, but a paper by
Wadler & Findler suggests that we should make the upcasts
always blame negative party and downcasts always blame the
positive party
- And we argue in the paper that that is related to our proof
that upcasts are pure and downcasts are linear
- Even CBV Eta is violated by pointer/object equality?
- right, and for this reason the simple wrapping semantics of
contracts/casts doesn't work for those systems, and people
introduce proxies
- however I think there should be a kind of eta law for proxies
that justifies those implementations.
- What about Call-by-need?
- We discuss this in the related work section. In addition to
call-by-value and call-by-name, there is also a translation of
what Levy calls the "lazy paradigm" that is analogous to
Haskell's behavior in that it supports the "seq" operation. We
show that this too reproduces previous work on contracts for
Haskell.
- Does this help with parametricity?
- Not directly at least. Perhaps the axiomatic approach can help
but it wouldn't be the same theorem as here because
parametricity is stronger than eta principles. I.e., the forall
type can satisfy an eta principle without satisfying
parametricity.
This diff is collapsed.
Click to expand it.
talk/popl-winter-2019/
talk-from-scratch
.key
→
talk/popl-winter-2019/
popl-talk
.key
+
0
−
0
View file @
3e3acf2a
No preview for this file type
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment