Last active
February 5, 2019 17:28
-
-
Save calebmer/2d32c189fd18e675fc97ff86e6f8555e to your computer and use it in GitHub Desktop.
This file contains 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
fresh(a') fresh(s') | |
(row-var) ───────────────────────────────────────── | |
s ≃ { p: a' | s' } : [s ↦ { p: a' | s' }] q ≠ p a ∉ ftv(a') r ∉ ftv({ q: b | s' }) | |
(row-swap) ─────────────────────────────────────────────────────────────── (uni-varl) ───────────────── (uni-varl) ─────────────────────────────────────── | |
{ q: b | s } ≃ { p: a' | { q: b | s' } } : [s ↦ { p: a' | s' }] a ∼ a' : [a ↦ a'] r ∼ { q: b | s' } : [r ↦ { q: b | s' }] | |
(uni-row) ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── | |
{ p: a | r } ∼ { q: b | s } : [r ↦ { q: b | s' }, s ↦ { p: a | s' }] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
A personal exercise based on the rules of “Extensible records with scoped labels”.