-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathEverything.agda
63 lines (42 loc) · 2.23 KB
/
Everything.agda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
{- Effects and Coeffects in Call-By-Push-Value -}
-- This is an Agda formalization of Section 2 of "Effects and Coeffects in
-- Call-By-Push-Value", available at https://github.com/plclub/cbpv-in-agda
-- This code has been tested with Agda version 2.6.2.2 and standard library
-- version 1.7.1.
module Everything where
{- Section 2.1 -}
import Effects -- Preordered monoid along with properties of preordered monoids
-- (named 'effects' as that is how they are used)
import CBPV.Effects.SyntacticTyping -- Type-and-effect system for CBPV
{- Section 2.2 -}
import CBPV.Effects.Semantics -- Environment-based big-step operational
-- semantics for CBPV instrumented with effects
import CBPV.Effects.Determinism -- Operational semantics are deterministic
{- Section 2.3 -}
import CBPV.Effects.SemanticTyping -- Logical relation + semantic typing rules
import CBPV.Effects.EffectSoundness -- Type-and-effect system accurately bounds
-- effects at runtime
{- Section 2.4 -}
import CBV.Effects.Translation -- Standard CBV translation (extended with
-- effects) is type-and-effect preserving
import CBN.Monadic.Translation -- Standard CBN translation (extended with graded
-- monads) is type-and-effect preserving
import CBV.Monadic.Translation -- Standard CBV translation (now extended with
-- graded monads) is type-and-effect preserving
{- Section 2: Extra -}
import CBPV.Effects.Adequacy -- Evaluation in environment-based big-step
-- operational semantics implies multi-step
-- reduction in substitution-based small-step
-- semantics (with agreeing effects)
{- Extra -}
-- These are the same results as presented in section 2, though without effects.
-- They are adapted from "Call-by-push-value in Coq: operational, equational,
-- and denotational theory" (CPP 2019)
import CBPV.Base.SyntacticTyping
import CBPV.Base.Semantics
import CBPV.Base.Determinism
import CBPV.Base.SemanticTyping
import CBPV.Base.TypeSoundness
import CBN.Base.Translation
import CBV.Base.Translation
import CBPV.Base.Adequacy