Built with Alectryon, running Coq+SerAPI v8.16.0+0.16.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
From Tealeaves Require Export
Backends.LN
Examples.STLC.Syntax.Export LN.Notations.#[local] Generalizable VariablesG.#[local] Set Implicit Arguments.(** * Language definition *)(******************************************************************************)Inductiveterm :=
| atm : atom -> term
| ix : nat -> term
| lam : typ -> term -> term
| app : term -> term -> term.(** ** Instantiate Tealeaves *)(******************************************************************************)Fixpointto_T (t: term) : Syntax.Lam LN :=
match t with
| atm a => Syntax.tvar (Fr a)
| ix n => Syntax.tvar (Bd n)
| lam τ t => Syntax.lam τ (to_T t)
| app t1 t2 => Syntax.app (to_T t1) (to_T t2)
end.Fixpointto_T_inv (t: Syntax.Lam LN) : term :=
match t with
| tvar (Fr a) => atm a
| tvar (Bd n) => ix n
| Syntax.lam τ t => lam τ (to_T_inv t)
| Syntax.app t1 t2 => app (to_T_inv t1) (to_T_inv t2)
end.