From 59f726ab964a8a838041ec1ab234ac32f25eeaf8 Mon Sep 17 00:00:00 2001 From: Steve Dunham Date: Thu, 13 Jul 2023 20:06:03 -0700 Subject: [PATCH] Lib/TT.idr is well scoped --- README.md | 17 +++- papers/prettier.pdf | Bin 0 -> 118581 bytes src/Lib/Parser.idr | 9 ++- src/Lib/TT.idr | 185 +++++++++++++++++++++++++++----------------- src/Main.idr | 16 +++- src/Syntax.idr | 66 ++++++++++++++-- 6 files changed, 203 insertions(+), 90 deletions(-) create mode 100644 papers/prettier.pdf diff --git a/README.md b/README.md index ba9051e..6984f67 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,23 @@ +Parser is in place. -I think we almost have enough of a parser to take another step. +Currently trying to make TT well-scoped, considering well-named.. +Need to update todos below. +Should I use well-scoped indices or well-scoped names... + +Parser: - [x] import statement - [x] def - [x] simple decl - [ ] type definition -- [ ] read files -- [ ] write tests +- [x] read files + +- [ ] type checking / elab +- [ ] +- [ ] +- [ ] - [ ] symbolic execution - [ ] compilation - +- [ ] write tests diff --git a/papers/prettier.pdf b/papers/prettier.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8a8c0c807e6b924d1b0454b2814702607b628b99 GIT binary patch literal 118581 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 RLet n RHole v acc) scope alts where letAssign : Parser (Name,Raw) letAssign = do @@ -178,7 +179,7 @@ expBinder = do sym ")" sym "->" scope <- typeExpr - pure $ RPi name Explicit ty scope + pure $ RPi (Just name) Explicit ty scope impBinder : Parser Raw impBinder = do @@ -189,7 +190,7 @@ impBinder = do sym "}" sym "->" scope <- typeExpr - pure $ RPi name Implicit ty scope + pure $ RPi (Just name) Implicit ty scope -- something binder looking -- todo sepby space or whatever @@ -205,7 +206,7 @@ typeExpr = binder case scope of Nothing => pure exp -- consider Maybe String to represent missing - (Just scope) => pure $ RPi "_" Explicit exp scope + (Just scope) => pure $ RPi Nothing Explicit exp scope -- And top level stuff diff --git a/src/Lib/TT.idr b/src/Lib/TT.idr index 15dd751..af829a4 100644 --- a/src/Lib/TT.idr +++ b/src/Lib/TT.idr @@ -1,111 +1,150 @@ module Lib.TT -- For SourcePos import Lib.Parser.Impl +import Data.Fin +import Data.Vect public export Name : Type Name = String +-- Trying to do well-scoped here, so the indices are proven. + export data Icit = Implicit | Explicit --- Sorta cribbed from Kovacs -Ty : Type - --- Idris and Kovacs have Icit at this level. -public export -data Tm - = Local Nat -- IsVar - | Ref String - | Lam Name Icit Tm - | App Tm Tm - | U - | Pi Name Ty Ty - | Let Name Ty Tm Tm - -Ty = Tm +%name Icit icit public export -data Closure : Type -VTy : Type +data Tm : Nat -> Nat -> Type where + Local : Fin k -> Tm k n + Bnd : Fin n -> Tm k n + Ref : String -> Tm k n + Lam : Name -> Icit -> Tm k (S n) -> Tm k n + App : Tm k n -> Tm k n -> Tm k n + U : Tm k n + Pi : Name -> Icit -> Tm k n -> Tm k (S n) -> Tm k n + Let : Name -> Icit -> Tm k n -> Tm k n -> Tm k (S n) -> Tm k n - -- Closure unpacked in the original -public export -data Val - = VVar Nat -- level - | VApp Val (Lazy Val) - | VLam Name Icit Closure - | VPi Name (Lazy VTy) Closure - | VU +%name Tm t, u, v -VTy = Val +-- public export +-- data Closure : Nat -> Type +data Val : Nat -> Type +0 Closure : Nat -> Type + +-- IS/TypeTheory.idr is calling this a Kripke function space +-- Yaffle, IS/TypeTheory use a function here. +-- Kovacs, Idris use Env and Tm +Closure n = (l : Nat) -> Val (l + n) -> Val (l + n) public export -Env : Type -Env = List Val +data Val : Nat -> Type where + -- This will be local / flex with spine. + VVar : Fin n -> Val n + VRef : String -> Val n + VApp : Val n -> Lazy (Val n) -> Val n + VLam : Name -> Icit -> Closure n -> Val n + VPi : Name -> Icit -> Lazy (Val n) -> Closure n -> Val n + VU : Val n --- +||| Env k n holds the evaluation environment. +||| k is the number of levels and n is the size +||| of the environment. +public export +Env : Nat -> Nat -> Type +Env k n = Vect n (Val k) -lvl2Ix : Nat -> Nat -> Nat +export +eval : Env k n -> Tm k n -> Val k -data Closure : Type where - MkClosure : Env -> Tm -> Closure +vapp : Val k -> Val k -> Val k +vapp (VLam _ icit t) u = t 0 u +vapp t u = VApp t u -infixl 8 $$ +-- weakenEnv : (l : Nat) -> Env k n -> Env (l + k) n -eval : Env -> Tm -> Val +weakenVal : {e : Nat} -> Val k -> Val (e + k) +weakenVal (VVar x) = VVar (shift _ x) +weakenVal (VRef str) = VRef str +weakenVal (VApp x y) = VApp (weakenVal x) (weakenVal y) +weakenVal (VLam str icit f) = VLam str icit + (\g, v => rewrite plusAssociative g e k in f (g + e) (rewrite sym $ plusAssociative g e k in v)) +weakenVal (VPi str icit x f) = VPi str icit (weakenVal {e} x) + (\g, v => rewrite plusAssociative g e k in f (g + e) (rewrite sym $ plusAssociative g e k in v)) +weakenVal VU = VU -($$) : Closure -> Lazy Val -> Val -(MkClosure env t) $$ u = eval (u :: env) t +bind : (e : Nat) -> Val (plus e k) -> Env k n -> Env (e + k) (S n) +bind e v env = v :: map weakenVal env -eval env (Local k) = ?hole -eval env (Ref x) = ?hole_1 -eval env (Lam x _ t) = ?hole_2 -eval env (App t u) = case (eval env t, eval env u) of - (VLam _ icit t, u) => t $$ u - (t, u) => VApp t u +-- is this weaken or thin? +weaken : {e : Nat} -> Tm k (S n) -> Tm (plus e k) (S n) +weaken (Local x) = Local (shift _ x) +weaken (Bnd x) = Bnd x +weaken (Ref str) = Ref str +weaken (Lam str x t) = Lam str x (weaken t) +weaken (App t u) = App (weaken t) (weaken u) +weaken U = U +weaken (Pi str x t u) = Pi str x (weaken t) (weaken u) +weaken (Let str x t u v) = Let str x (weaken t) (weaken u) (weaken v) +eval env (Local x) = VVar x -- this is a hole in intrinsic, vfree x in the other +eval env (Ref x) = VRef x +eval env (Bnd n) = index n env +eval env (Lam x icit t) = VLam x icit (\e, u => eval (bind e u env) (weaken t))-- (MkClosure env t) +eval env (App t u) = vapp (eval env t) (eval env u) eval env U = VU -eval env (Pi x a b) = VPi x (eval env a) (MkClosure env b) -eval env (Let x _ t u) = eval (eval env t :: env) u +eval env (Pi x icit a b) = VPi x icit (eval env a) (\e, u => eval (bind e u env) (weaken b)) +-- This one we need to make +eval env (Let x icit ty t u) = eval (eval env t :: env) u -quote : Nat -> Val -> Tm -quote l (VVar k) = Local (lvl2Ix l k) +vfresh : (l : Nat) -> Val (S l) +vfresh l = VVar last + +quote : (k : Nat) -> Val k -> Tm 0 k +quote l (VVar k) = Bnd (complement k) -- level to index quote l (VApp t u) = App (quote l t) (quote l u) -quote l (VLam x icit t) = Lam x icit (quote (l + 1) (t $$ VVar l)) -quote l (VPi x a b) = Pi x (quote l a) (quote (l+1) (b $$ VVar l)) -quote l VU = ?rhs_4 +-- so this one is calling the kripke on [x] and a fresh var +quote l (VLam x icit t) = Lam x icit (quote (S l) (t 1 (vfresh l))) +quote l (VPi x icit a b) = Pi x icit (quote l a) (quote (S l) (b 1 $ vfresh l)) +quote l VU = U +quote _ (VRef n) = Ref n -nf : Env -> Tm -> Tm -nf env t = quote (length env) (eval env t) - ---- -public export -conv : (lvl : Nat) -> Val -> Val -> Bool - - --- -public export -Types : Type -Types = List (Name, Lazy VTy) +nf : {n : Nat} -> Env 0 n -> Tm 0 n -> Tm 0 0 +nf env t = quote 0 (eval env t) public export -record Ctx where +conv : (lvl : Nat) -> Val n -> Val n -> Bool + +data BD = Bound | Defined + +public export +Types : Nat -> Type +Types n = Vect n (Name, Lazy (Val n)) + +public export +record Ctx (n : Nat) where constructor MkCtx - env : Env - types : Types - lvl : Nat - -- For now, we're following Kovacs and using a node for - -- source position. Might switch to FC at some point? + env : Env k n -- for eval + types : Types n -- name lookup, pp + bds : Vect n BD -- meta creation + lvl : Nat -- This is n, do we need it? + -- Kovacs and Weirich use a position node pos : SourcePos -public export -emptyCtx : Ctx -emptyCtx = MkCtx [] [] 0 (0,0) +%name Ctx ctx public export -bind : Name -> Lazy VTy -> Ctx -> Ctx -bind x a (MkCtx env types l pos) = - MkCtx (VVar l :: env) ((x,a) :: types) (l+1) pos +emptyCtx : Ctx Z +emptyCtx = MkCtx {k=0} [] [] [] 0 (0,0) +-- public export +-- bind : Name -> Lazy (Val (k + n)) -> Ctx n -> Ctx (S n) +-- bind x a (MkCtx env types bds l pos) = +-- MkCtx (VVar l :: env) ((x,a) :: types) (Bound :: bds) (l+1) pos + +-- public export +-- define : Name -> Val n -> Lazy (Val n) -> Ctx n -> Ctx (S n) +-- define x v ty (MkCtx env types bds l pos) = +-- MkCtx (v :: env) ((x,ty) :: types) (Defined :: bds) (l + 1) pos diff --git a/src/Main.idr b/src/Main.idr index 379e359..9be384d 100644 --- a/src/Main.idr +++ b/src/Main.idr @@ -11,6 +11,8 @@ import System import System.File import System.Directory import Control.App +import Syntax +import Lib.Prettier -- Put stuff in attic -- Error printing @@ -30,8 +32,10 @@ test pa src = do putStrLn "- Toks" printLn $ toks putStrLn "- Parse" - let res = parse pa toks - printLn res + let Right res = parse pa toks + | Left y => putStrLn "Error: \{y}" + printLn $ res + -- let toks2 = layout toks -- printLn $ map value toks2 @@ -40,9 +44,13 @@ test pa src = do testFile : String -> IO () testFile fn = do putStrLn ("***" ++ fn) - Right text <- readFile $ "eg/" ++ fn + Right src <- readFile $ "eg/" ++ fn | Left err => printLn err - test parseMod text + let toks = tokenise src + let Right res = parse parseMod toks + | Left y => putStrLn "Error: \{y}" + + putStrLn $ pretty 80 $ pretty res olderTests : IO () olderTests = do diff --git a/src/Syntax.idr b/src/Syntax.idr index dc12026..440474a 100644 --- a/src/Syntax.idr +++ b/src/Syntax.idr @@ -1,7 +1,9 @@ module Syntax import Data.String +import Data.Maybe import Lib.Parser.Impl +import Lib.Prettier Name = String @@ -14,7 +16,9 @@ public export data RigCount = Rig0 | RigW -- I think I got Eq from pi-forall, it uses it for equality args (which are kinda like Prop/Rig0?) public export -data Plicity = Implicit | Explicit | Eq +data Plicity = Implicit | Explicit -- | Eq + +%name Plicity icit public export data Pattern @@ -29,14 +33,16 @@ data Pattern public export data CaseAlt = MkAlt Pattern Raw +-- TODO redo this with names for documentation + public export data Raw = RVar Name | RLam String Plicity Raw | RApp Raw Raw Plicity | RU - | RPi Name Plicity Raw Raw - | RLet (List (Name, Raw)) Raw + | RPi (Maybe Name) Plicity Raw Raw + | RLet Name Raw Raw Raw | RSrcPos SourcePos Raw | RAnn Raw Raw @@ -45,6 +51,8 @@ data Raw | RHole | RParseError String +%name Raw tm + -- derive some stuff - I'd like json, eq, show, ... data Decl : Type where @@ -118,7 +126,7 @@ Show CaseAlt where Show Plicity where show Implicit = "Implicit" show Explicit = "Explicit" - show Eq = "Eq" + -- show Eq = "Eq" covering Show Raw where @@ -126,7 +134,7 @@ Show Raw where show (RVar name) = foo ["RVar", show name] show (RAnn t ty) = foo [ "RAnn", show t, show ty] show (RLit x) = foo [ "RLit", show x] - show (RLet alts y) = foo [ "Let", show alts, show y] + show (RLet x ty v scope) = foo [ "Let", show x, " : ", show ty, " = ", show v, " in ", show scope] show (RPi str x y z) = foo [ "Pi", show str, show x, show y, show z] show (RApp x y z) = foo [ "App", show x, show y, show z] show (RLam x i y) = foo [ "Lam", show x, show i, show y] @@ -135,4 +143,52 @@ Show Raw where show RU = "U" show (RSrcPos pos tm) = show tm +export +interface Pretty a where + pretty : a -> Doc +export +Pretty Raw where + pretty = asDoc 0 + where + wrap : Plicity -> Doc -> Doc + wrap Implicit x = x + wrap Explicit x = text "{" ++ x ++ text "}" + + par : Nat -> Nat -> Doc -> Doc + par p p' d = if p' < p then text "(" ++ d ++ text ")" else d + + asDoc : Nat -> Raw -> Doc + asDoc p (RVar str) = text str + asDoc p (RLam str icit x) = par p 0 $ text "\\" ++ wrap icit (text str) <+> text "=>" <+> asDoc 0 x + -- This needs precedence and operators... + asDoc p (RApp x y Explicit) = par p 2 $ asDoc 2 x <+> asDoc 3 y + asDoc p (RApp x y Implicit) = par p 2 $ asDoc 2 x <+> text "{" ++ asDoc 0 y ++ text "}" + asDoc p RU = text "U" + asDoc p (RPi Nothing Implicit ty scope) = par p 1 $ asDoc p ty <+> text "->" <+/> asDoc p scope + asDoc p (RPi (Just x) Implicit ty scope) = + par p 1 $ text "(" <+> text x <+> text ":" <+> asDoc p ty <+> text ")" <+> text "->" <+/> asDoc p scope + asDoc p (RPi nm Explicit ty scope) = + par p 1 $ text "{" <+> text (fromMaybe "_" nm) <+> text ":" <+> asDoc p ty <+> text "}" <+> text "->" <+/> asDoc 1 scope + asDoc p (RLet x v ty scope) = + par p 0 $ text "let" <+> text x <+> text ":" <+> asDoc p ty + <+> text "=" <+> asDoc p v + <+/> text "in" <+> asDoc p scope + asDoc p (RSrcPos x y) = asDoc p y + -- does this exist? + asDoc p (RAnn x y) = text "TODO - RAnn" + asDoc p (RLit x) = text (show x) + asDoc p (RCase x xs) = text "TODO - RCase" --?asDoc p_rhs_9 + asDoc p RHole = text "_" + asDoc p (RParseError str) = text "PraseError \{str}" + +export +Pretty Module where + pretty (MkModule name imports decls) = + text "module" <+> text name stack (map doDecl decls) + where + doDecl : Decl -> Doc + doDecl (TypeSig nm ty) = text nm <+> text ":" <+> nest 2 (pretty ty) + doDecl (Def nm tm) = text nm <+> text "=" <+> nest 2 (pretty tm) + doDecl (DImport nm) = text "import" <+> text nm ++ line + doDecl (Data str x xs) = text "TODO data"