Qiit.quot
data [a : đ] [r : a â a â Ί]
Q : U
cls : a â El Q
qeq : (x : a) (y : a) â r x y â cls x ⥠cls y â El Q
qlift : (a : đ)
(r : a â a â Ί)
{b : đ}
(f : a â b)
(resp : (x y : a) â r x y â f x ⥠f y)
â Q _ r â b
using (Qiit.quot.Q.unfold)
qlift = Îťa r b f resp q. QElim a r (Îťw. b) (Îťx. f x) (Îťx y h. resp x y h) q
qliftBeta : (a : đ)
(r : a â a â Ί)
(b : đ)
(f : a â b)
(resp : (x y : a) â r x y â f x ⥠f y)
(x : a)
â qlift _ (Îťy z. r y z) f resp (cls a r x) ⥠f x
using (Qiit.quot.Q.eq, Qiit.quot.QElim.eq, Qiit.quot.cls.eq, Qiit.quot.qlift.eq)
qliftBeta = Îťa r b f resp x. â
eqN : â â â â Ί
eqN = Νx y. x ⥠y
toNat : Q _ eqN â â using (Qiit.quot.Q.unfold, Qiit.quot.eqN.unfold)
toNat = Îťq. qlift _ _ (Îťx. x) (Îťx y h. â) q
toNatCls : toNat (cls â eqN (S Z)) ⥠S Z
using (Qiit.quot.Q.eq,
Qiit.quot.QElim.eq,
Qiit.quot.cls.eq,
Qiit.quot.eqN.eq,
Qiit.quot.qlift.eq,
Qiit.quot.toNat.eq)
toNatCls = â