-
Notifications
You must be signed in to change notification settings - Fork 0
/
Assumed.v
29 lines (21 loc) · 887 Bytes
/
Assumed.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
Require Import Syntax_ott.
Require Import TypeSystems.
Require Import Algorithm.
Require Import Metalib.Metatheory.
(* ********************************************************************** *)
(** * Well-known properties of System F *)
Definition halts t :=
exists t', value t' /\ t ->* t'.
Axiom normalization : forall t T,
typ nil nil t T ->
halts t.
Axiom ty_absurd : forall e,
typ nil nil e (ty_all (ty_var_b 0)) -> False.
(* ********************************************************************** *)
(** * Hairy Renaming due to locally-nameless encoding *)
Axiom asub_rename : forall X Y Q A B C c,
asub A (Q ++ [qs_all X C]) (open_sty_wrt_sty B (sty_var_f X)) c ->
X `notin` fv_sty_in_sty B \u fv_sty_in_sty A ->
Y `notin` fv_sty_in_sty B \u fv_sty_in_sty A ->
wf_fs Q ->
asub A (Q ++ [qs_all Y C]) (open_sty_wrt_sty B (sty_var_f Y)) c.