AG
Size: a a a
AG
AG
KC
KC
KC
AG
curryW : All $ (p ^*^ q) ~* r :-> p ~* (q ~* r)
curryW wpq_r =
MkWand $ \sp1, pm =>
MkWand $ \sp2, qr =>
let (_ ** (sp3, sp4)) = splitAssoc sp1 sp2 in
app wpq_r sp3 (MkStar pm sp4 qr)
uncurryW : All $ p ~* (q ~* r) :-> (p ^*^ q) ~* r
uncurryW wpqr = MkWand $ \sp1, (MkStar pl sp2 qr) =>
let (_ ** (sp3, sp4)) = splitUnassoc sp1 sp2 in
app (app wpqr sp3 pl) sp4 qr
AG
AG
KC
KC
Oℕ
AG
Reader : Ctx -> Ctx -> Pred ST -> Pred ST
Reader g1 g2 p = Env g1 ~* Env g2 ^*^ p
KC
AG
w
AG