{-# OPTIONS --no-exact-split --safe #-}

module Cubical.Data.InfNat.Properties where

open import Cubical.Data.Nat as  using ()
open import Cubical.Data.InfNat.Base
open import Cubical.Core.Primitives
open import Cubical.Foundations.Prelude
open import Cubical.Relation.Nullary
open import Cubical.Data.Unit
open import Cubical.Data.Empty

fromInf-def :   ℕ+∞  
fromInf-def n  = n
fromInf-def _ (fin n) = n

fin-inj : (n m : )  fin n  fin m  n  m
fin-inj x _ eq = cong (fromInf-def x) eq

discreteInfNat : Discrete ℕ+∞
discreteInfNat   = yes  i  )
discreteInfNat  (fin _) = no λ p  subst (caseInfNat  Unit) p tt
discreteInfNat (fin _)  = no λ p  subst (caseInfNat Unit ) p tt
discreteInfNat (fin n) (fin m) with ℕ.discreteℕ n m
discreteInfNat (fin n) (fin m) | yes p = yes (cong fin p)
discreteInfNat (fin n) (fin m) | no ¬p = no  p  ¬p (fin-inj n m p))