Γ, x : %self(x). T |- T : Type
------------------------------
%self(x). T : Type
fix%Unit (unit : %self(unit). %unroll Unit unit unit) (u : %self(u). %unroll Unit unit u)
= (P : (u : %self(u). %unroll Unit unit u) -> Type) -> P unit -> P u;
fix%unit : %unroll Unit unit unit = P => x => x;
Unit = %self(u). %unroll Unit unit u;
unit : Unit = unit;
ind (u : Unit) = %unroll u;
%fix(Unit)
Unit : %self(Unit).
(unit : %self(unit). %unroll Unit unit unit) ->
(u : %self(u). %unroll Unit unit u) -> Type
received : %self(k). %unroll Unit k k // unit := k; u := k
expected : %self(k). %unroll Unit k k // unit := k; u := k
%self. (%self. %unroll 1 0 0) -> (%self. %unroll 2 1 0) -> Type
%self. %unroll (1 : %self. (%self. %unroll 1 0 0) -> (%self. %unroll 2 1 0) -> Type) 0 0
%self. (%unroll 1 : (%self. %unroll 2 0 0) -> (%self. %unroll 3 1 0) -> Type) 0 0
%self. (%unroll 1 (0 : %self. %unroll 2 0 0) : (%self. %unroll 2 0 0) -> Type) 0
%self. (%unroll 1 0 0 : Type)
Created
March 2, 2023 16:07
-
-
Save EduardoRFS/22d48e296d059e3a40631d40b60ba5b3 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment