diff options
author | Greg Brown <greg.brown01@ed.ac.uk> | 2024-10-09 16:57:47 +0100 |
---|---|---|
committer | Greg Brown <greg.brown01@ed.ac.uk> | 2024-10-09 16:57:47 +0100 |
commit | d926ce9f2d1144f329598a30b3ed2e48899519b2 (patch) | |
tree | b6eaa7ba40437b902e3ca9c8343ee44270a46d2e /program/syst-to-primrose.pty | |
parent | 8b326bb4a879be72cb6382519350cbb5231f7a6e (diff) |
Write a System T to Primrose program.
Diffstat (limited to 'program/syst-to-primrose.pty')
-rw-r--r-- | program/syst-to-primrose.pty | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/program/syst-to-primrose.pty b/program/syst-to-primrose.pty new file mode 100644 index 0000000..4030642 --- /dev/null +++ b/program/syst-to-primrose.pty @@ -0,0 +1,41 @@ +(\X => + [ Var: Nat + , Zero: <> + , Suc: X + , Rec: <Target: X, Zero: X, Suc: X> + , Abs: X + , App: <Fun: X, Arg: X> + ]) +-> +(\X => + [ Var: Nat + , Lit: Nat + , Suc: X + , Abs: X + , App: <Fun: X, Arg: X> + , Unit: <> + , Pair: <Fst: X, Snd: X> + , Fst: X + , Snd: X + , Absurd: <Target: X> + , Inl: X + , Inr: X + , Case: <Target: X, Left: X, Right: X> + , Expand: X + , Contract: X + , Fold: <Target: X, Body: X> + , Let: <Bound: X, Body: X> + , Annot: + < Term: X + , Type: (\Y => + [ Var: Nat + , N: <> + , Arrow: <Dom: Y, Cod: Y> + , Unit: <> + , Pair: <Fst: Y, Snd: Y> + , Bottom: <> + , Sum: <Left: Y, Right: Y> + , Fix: Y + ]) + > + ]) |