[commit: ghc] master: Modernize S_TPush in the core spec (7fe4993)

git at git.haskell.org git at git.haskell.org
Mon Jul 16 22:10:31 UTC 2018


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/7fe4993673e43e5b21f38d79ecc8b5163e97ee84/ghc

>---------------------------------------------------------------

commit 7fe4993673e43e5b21f38d79ecc8b5163e97ee84
Author: Ryan Scott <ryan.gl.scott at gmail.com>
Date:   Mon Jul 16 18:10:01 2018 -0400

    Modernize S_TPush in the core spec
    
    Summary:
    The specification for the `S_TPush` rule in the core spec's
    operational semantics is woefully out-of-date. Let's bring it in line
    with the presentation in //System FC with Explicit Kind Equality//.
    
    Test Plan: Read it
    
    Reviewers: goldfire, bgamari
    
    Reviewed By: goldfire
    
    Subscribers: rwbarton, thomie, carter
    
    Differential Revision: https://phabricator.haskell.org/D4970


>---------------------------------------------------------------

7fe4993673e43e5b21f38d79ecc8b5163e97ee84
 docs/core-spec/OpSem.ott     |  10 ++++++++--
 docs/core-spec/core-spec.pdf | Bin 354450 -> 354354 bytes
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/docs/core-spec/OpSem.ott b/docs/core-spec/OpSem.ott
index efed85a..389c5e8 100644
--- a/docs/core-spec/OpSem.ott
+++ b/docs/core-spec/OpSem.ott
@@ -45,8 +45,14 @@ not e2 is_a_coercion
 ----------------------------------------------- :: Push
 ((\n.e1) |> g) e2 --> (\n.e1 |> g1) (e2 |> g0)
 
----------------------------------------- :: TPush
-((\n.e) |> g) t --> (\n.(e |> g n)) t
+% g : (forall (a : k1). t1) ~Rep# (forall (a : k2). t2)
+% t : k2
+% g' : k2 ~# k1
+% t' : k1
+g' = sym (nth Nom 0 g)
+t' = t |> g'
+-------------------------------------------------------- :: TPush
+((\n.e) |> g) t --> ((\n.e) t') |> (g @ (<t>_Nom |> g'))
 
 % g : ((t1 ~rho# t2) -> t3) ~Rep# ((t4 ~rho# t5) -> t6)
 % g2 : t3 ~Rep# t6
diff --git a/docs/core-spec/core-spec.pdf b/docs/core-spec/core-spec.pdf
index 97694dc..21a8852 100644
Binary files a/docs/core-spec/core-spec.pdf and b/docs/core-spec/core-spec.pdf differ



More information about the ghc-commits mailing list