-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtypes.v
30 lines (22 loc) · 900 Bytes
/
types.v
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
Require Import Setoid Arith List Omega Coq.Program.Tactics decision.
Require Import mlattice id_and_loc language LibTactics tactics.
Module Types (L: Lattice).
Module Lang := Language L.
Import Lang L.
Notation "∘" := LH.L.
Notation "•" := LH.H.
Notation "X '≼' Y" := (ProdL.flowsto X Y) (at level 70, no associativity).
Notation "X '⋎' Y" := (ProdL.join X Y) (at level 40, left associativity).
Inductive type :=
| Int: type
| Array: sectype -> level_proj1 -> type
with sectype :=
| SecType:
type -> ProdL.T -> sectype.
Scheme type_mut := Induction for type Sort Prop
with sectype_mut := Induction for sectype Sort Prop.
Definition tenv := id -> option sectype.
Definition emptyTenv : tenv := fun _ => None.
Definition stenv := loc -> option sectype.
Definition emptyStenv : stenv := fun _ => None.
End Types.