Skip to content
Snippets Groups Projects
lhol.lp 705 B
Newer Older
gabrielhdt's avatar
gabrielhdt committed
/// Encoding of λHOL
constant symbol Set: TYPE;
constant symbol Prop: TYPE;
gabrielhdt's avatar
gabrielhdt committed

injective symbol El: Set → TYPE;
injective symbol Prf: Prop → TYPE;
gabrielhdt's avatar
gabrielhdt committed

constant symbol prop: Set;
rule El prop ↪ Prop;
gabrielhdt's avatar
gabrielhdt committed

constant symbol ∀ {x: Set}: (El x → Prop) → Prop;
rule Prf (∀ {$X} $P) ↪ Π x: El $X, Prf ($P x);

constant symbol impd {x: Prop}: (Prf x → Prop) → Prop;
rule Prf (impd {$H} $P) ↪ Π h: Prf $H, Prf ($P h);
gabrielhdt's avatar
gabrielhdt committed

constant symbol arrd (x: Set): (El x → Set) → Set;
rule El (arrd $X $T) ↪ Π x: El $X, El ($T x);
gabrielhdt's avatar
gabrielhdt committed

constant symbol arr: Set → Set → Set;
rule El (arr $X $Y) ↪ (El $X) → (El $Y);
hondet's avatar
hondet committed
symbol ~> ≔ arr;
notation ~> infix right 6;
gabrielhdt's avatar
gabrielhdt committed

builtin "T" ≔ El;
builtin "P" ≔ Prf;