-
Notifications
You must be signed in to change notification settings - Fork 1
/
Examples.agda
72 lines (67 loc) · 5.42 KB
/
Examples.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
64
65
66
67
68
69
70
71
72
module ExamplePrograms.Simulation.Examples where
open import Data.List
open import Data.Product using (_×_; ∃-syntax; Σ-syntax) renaming (_,_ to ⟨_,_⟩)
open import Agda.Builtin.String
open import Common.Utils
open import Common.Types
open import Surface.SurfaceLang
Cfg = String ×
∃[ M ] ∃[ M′ ] ∃[ A ] ∃[ A′ ]
([] ; l low ⊢ᴳ M ⦂ A) × ([] ; l low ⊢ᴳ M′ ⦂ A′)
open import ExamplePrograms.Simulation.Values as Values
open import ExamplePrograms.Simulation.FunInjArg as FunInjArg
open import ExamplePrograms.Simulation.AppFunProxy1 as AppFunProxy1
open import ExamplePrograms.Simulation.AppFunProxy2 as AppFunProxy2
open import ExamplePrograms.Simulation.FunCast1 as FunCast1
open import ExamplePrograms.Simulation.FunCast2 as FunCast2
open import ExamplePrograms.Simulation.FunCast3 as FunCast3
open import ExamplePrograms.Simulation.FunCast4 as FunCast4
open import ExamplePrograms.Simulation.DerefRefProxy as DerefRefProxy
open import ExamplePrograms.Simulation.AssignRefProxy as AssignRefProxy
open import ExamplePrograms.Simulation.RefAndImplicitFlow as RefImpFlow
open import ExamplePrograms.Simulation.RefNSU1 as RefNSU1
open import ExamplePrograms.Simulation.RefNSU2 as RefNSU2
open import ExamplePrograms.Simulation.RefNSU3 as RefNSU3
open import ExamplePrograms.Simulation.AssignNSU1 as AssignNSU1
open import ExamplePrograms.Simulation.AssignNSU2 as AssignNSU2
open import ExamplePrograms.Simulation.AssignNSU3 as AssignNSU3
open import ExamplePrograms.Simulation.AssignNSU4 as AssignNSU4
open import ExamplePrograms.Simulation.RefCast1 as RefCast1
open import ExamplePrograms.Simulation.SubInj1 as SubInj1
open import ExamplePrograms.Simulation.SubInj2 as SubInj2
open import ExamplePrograms.Simulation.InjProj1 as InjProj1
open import ExamplePrograms.Simulation.InjProj2 as InjProj2
open import ExamplePrograms.Simulation.IfTrueAssign as IfTrueAssign
open import ExamplePrograms.Simulation.IfFalseAssign as IfFalseAssign
open import ExamplePrograms.Simulation.WrongAnn1 as WrongAnn1
open import ExamplePrograms.Simulation.WrongAnn2 as WrongAnn2
cfgs : List Cfg
cfgs =
⟨ "Values" , Values.M , Values.M′ , _ , _ , Values.⊢M , Values.⊢M′ ⟩ ∷
⟨ "AppFunProxy1" , AppFunProxy1.M , AppFunProxy1.M′ , _ , _ , AppFunProxy1.⊢M , AppFunProxy1.⊢M′ ⟩ ∷
⟨ "AppFunProxy2" , AppFunProxy2.M , AppFunProxy2.M′ , _ , _ , AppFunProxy2.⊢M , AppFunProxy2.⊢M′ ⟩ ∷
⟨ "FunCast1" , FunCast1.M , FunCast1.M′ , _ , _ , FunCast1.⊢M , FunCast1.⊢M′ ⟩ ∷
⟨ "FunCast2" , FunCast2.M , FunCast2.M′ , _ , _ , FunCast2.⊢M , FunCast2.⊢M′ ⟩ ∷
⟨ "FunCast3" , FunCast3.M , FunCast3.M′ , _ , _ , FunCast3.⊢M , FunCast3.⊢M′ ⟩ ∷
⟨ "FunCast4" , FunCast4.M , FunCast4.M′ , _ , _ , FunCast4.⊢M , FunCast4.⊢M′ ⟩ ∷
⟨ "DerefRefProxy" , DerefRefProxy.M , DerefRefProxy.M′ , _ , _ , DerefRefProxy.⊢M , DerefRefProxy.⊢M′ ⟩ ∷
⟨ "AssignRefProxy" , AssignRefProxy.M , AssignRefProxy.M′ , _ , _ , AssignRefProxy.⊢M , AssignRefProxy.⊢M′ ⟩ ∷
⟨ "RefImpFlow" , RefImpFlow.M , RefImpFlow.M′ , _ , _ , RefImpFlow.⊢M , RefImpFlow.⊢M′ ⟩ ∷
⟨ "RefNSU1" , RefNSU1.M , RefNSU1.M′ , _ , _ , RefNSU1.⊢M , RefNSU1.⊢M′ ⟩ ∷
⟨ "RefNSU2" , RefNSU2.M , RefNSU2.M′ , _ , _ , RefNSU2.⊢M , RefNSU2.⊢M′ ⟩ ∷
⟨ "RefNSU3" , RefNSU3.M , RefNSU3.M′ , _ , _ , RefNSU3.⊢M , RefNSU3.⊢M′ ⟩ ∷
⟨ "AssignNSU1" , AssignNSU1.M , AssignNSU1.M′ , _ , _ , AssignNSU1.⊢M , AssignNSU1.⊢M′ ⟩ ∷
⟨ "AssignNSU2" , AssignNSU2.M , AssignNSU2.M′ , _ , _ , AssignNSU2.⊢M , AssignNSU2.⊢M′ ⟩ ∷
⟨ "AssignNSU3" , AssignNSU3.M , AssignNSU3.M′ , _ , _ , AssignNSU3.⊢M , AssignNSU3.⊢M′ ⟩ ∷
⟨ "AssignNSU4" , AssignNSU4.M , AssignNSU4.M′ , _ , _ , AssignNSU4.⊢M , AssignNSU4.⊢M′ ⟩ ∷
⟨ "RefCast1" , RefCast1.M , RefCast1.M′ , _ , _ , RefCast1.⊢M , RefCast1.⊢M′ ⟩ ∷
⟨ "FunInjArg" , FunInjArg.M , FunInjArg.M′ , _ , _ , FunInjArg.⊢M , FunInjArg.⊢M′ ⟩ ∷
⟨ "SubInj1" , SubInj1.M , SubInj1.M′ , _ , _ , SubInj1.⊢M , SubInj1.⊢M′ ⟩ ∷
⟨ "SubInj2" , SubInj2.M , SubInj2.M′ , _ , _ , SubInj2.⊢M , SubInj2.⊢M′ ⟩ ∷
⟨ "InjProj1" , InjProj1.M , InjProj1.M′ , _ , _ , InjProj1.⊢M , InjProj1.⊢M′ ⟩ ∷
⟨ "InjProj2" , InjProj2.M , InjProj2.M′ , _ , _ , InjProj2.⊢M , InjProj2.⊢M′ ⟩ ∷
⟨ "IfTrueAssign" , IfTrueAssign.M , IfTrueAssign.M′ , _ , _ , IfTrueAssign.⊢M , IfTrueAssign.⊢M′ ⟩ ∷
⟨ "IfFalseAssign" , IfFalseAssign.M , IfFalseAssign.M′ , _ , _ , IfFalseAssign.⊢M , IfFalseAssign.⊢M′ ⟩ ∷
⟨ "WrongAnn1" , WrongAnn1.M , WrongAnn1.M′ , _ , _ , WrongAnn1.⊢M , WrongAnn1.⊢M′ ⟩ ∷
⟨ "WrongAnn2" , WrongAnn2.M , WrongAnn2.M′ , _ , _ , WrongAnn2.⊢M , WrongAnn2.⊢M′ ⟩ ∷
[]