Skip to content

Instantly share code, notes, and snippets.

@shlevy
Created November 10, 2015 20:01
Show Gist options
  • Select an option

  • Save shlevy/128f9f34d4160e1942d9 to your computer and use it in GitHub Desktop.

Select an option

Save shlevy/128f9f34d4160e1942d9 to your computer and use it in GitHub Desktop.
%default total
codata Level : Type where
S : Level -> Level
sInjective' : (x : Level) -> (y : Level) -> S (Delay x) = S (Delay (Force (Delay (S (Delay y))))) -> x = S (Delay (Force (Delay y)))
sInjective' _ y Refl = replace {P = \level => S (Delay y) = S (Delay level)} Refl Refl
levelNotSLevel' : (level : Lazy' LazyCodata Level) -> Not ((Force level) = S level)
levelNotSLevel' (S (Delay level)) p = levelNotSLevel' level (sInjective' level level p)
sInjective : (x : Level) -> (y : Level) -> S (Delay x) = S (Delay (S (Delay y))) -> x = S (Delay (Force (Delay y)))
sInjective _ y Refl = replace {P = \level => S (Delay y) = S (Delay level)} Refl Refl
levelNotSLevel : (level : Level) -> Not (level = S (Delay level))
levelNotSLevel (S (Delay level)) p = levelNotSLevel' level (sInjective level level p)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment