Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dmxlarchey/systemf

A clean and short proof of strong normalization for Curry-style System F
https://github.com/dmxlarchey/systemf

Last synced: about 1 month ago
JSON representation

A clean and short proof of strong normalization for Curry-style System F

Awesome Lists containing this project

README

        

# SystemF
A clean and short proof of strong normalization for Curry-style System F

```
Inductive term_beta : term → term → Prop :=
| in_beta_redex u v : (Ⲗu)@v -β-> u⌈v⌉
| in_beta_lft u v w : u -β-> v → u@w -β-> v@w
| in_beta_rt u v w : u -β-> v → w@u -β-> w@v
| in_beta_abs u v : u -β-> v → Ⲗu -β-> Ⲗv
where "x -β-> y" := (term_beta x y).
```

```
Inductive F_Typing_Judgement : (nat → type) → term → type → Prop :=
| fty_var Γ x : Γ ⊢ £x ∶ Γ x
| fty_arr_intro Γ u A B : A∷Γ ⊢ u ∶ B
→ Γ ⊢ Ⲗu ∶ A⇨B
| fty_arr_elim Γ u v A B : Γ ⊢ u ∶ A⇨B
→ Γ ⊢ v ∶ A
→ Γ ⊢ u@v ∶ B
| fty_abs_intro Γ u A : ⇑Γ ⊢ u ∶ A
→ Γ ⊢ u ∶ ∇A
| fty_abs_elim Γ u A B : Γ ⊢ u ∶ ∇A
→ Γ ⊢ u ∶ A⌈B⌉
where "Γ ⊢ u ∶ A" := (F_Typing_Judgement Γ u A).
```

```
Definition SN := Acc term_beta⁻¹.

Theorem FTJ_beta_sn Γ u A : Γ ⊢ u ∶ A → SN u.
```

To be able to implement such definitions, some infrastructure
is necessary.