Skip to content

Commit 7363d88

Browse files
committed
iLwfulOrd Char
1 parent 5761960 commit 7363d88

File tree

2 files changed

+68
-2
lines changed

2 files changed

+68
-2
lines changed

lib/Haskell/Law/Ord/Char.agda

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
module Haskell.Law.Ord.Char where
2+
3+
open import Haskell.Prim
4+
open import Haskell.Prim.Eq
5+
open import Haskell.Prim.Ord
6+
7+
open import Haskell.Law.Bool
8+
open import Haskell.Law.Eq.Def
9+
open import Haskell.Law.Eq.Instances
10+
open import Haskell.Law.Ord.Def
11+
open import Haskell.Law.Ord.Nat
12+
13+
instance
14+
iLawfulOrdChar : IsLawfulOrd Char
15+
16+
iLawfulOrdChar .comparability a b
17+
with (c2n a) | (c2n b)
18+
... | n | m = comparability n m
19+
20+
iLawfulOrdChar .transitivity a b c h
21+
with (c2n a) | (c2n b) | (c2n c)
22+
... | n | m | o = transitivity n m o h
23+
24+
iLawfulOrdChar .reflexivity a
25+
with (c2n a)
26+
... | n = reflexivity n
27+
28+
iLawfulOrdChar .antisymmetry a b h
29+
with (c2n a) | (c2n b)
30+
... | n | m = antisymmetry n m h
31+
32+
iLawfulOrdChar .lte2gte a b
33+
with (c2n a) | (c2n b)
34+
... | n | m = lte2gte n m
35+
36+
iLawfulOrdChar .lt2LteNeq a b
37+
with (c2n a) | (c2n b)
38+
... | n | m = lt2LteNeq n m
39+
40+
iLawfulOrdChar .lt2gt a b
41+
with (c2n a) | (c2n b)
42+
... | n | m = lt2gt n m
43+
44+
iLawfulOrdChar .compareLt a b
45+
with (c2n a) | (c2n b)
46+
... | n | m = compareLt n m
47+
48+
iLawfulOrdChar .compareGt a b
49+
with (c2n a) | (c2n b)
50+
... | n | m = compareGt n m
51+
52+
iLawfulOrdChar .compareEq a b
53+
with (c2n a) | (c2n b)
54+
... | n | m = compareEq n m
55+
56+
iLawfulOrdChar .min2if a b
57+
with (c2n a) | (c2n b)
58+
... | n | m
59+
rewrite lte2ngt n m
60+
| ifFlip (m < n) a b
61+
= eqReflexivity (if (m < n) then b else a)
62+
63+
iLawfulOrdChar .max2if a b
64+
with (c2n a) | (c2n b)
65+
... | n | m
66+
rewrite gte2nlt n m
67+
| ifFlip (n < m) a b
68+
= eqReflexivity (if (n < m) then b else a)

lib/Haskell/Law/Ord/Def.agda

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,6 @@ postulate instance
178178

179179
iLawfulOrdDouble : IsLawfulOrd Double
180180

181-
iLawfulOrdChar : IsLawfulOrd Char
182-
183181
iLawfulOrdUnit : IsLawfulOrd ⊤
184182

185183
iLawfulOrdTuple₂ : ⦃ iOrdA : Ord a ⦄ ⦃ iOrdB : Ord b ⦄

0 commit comments

Comments
 (0)