File tree Expand file tree Collapse file tree 4 files changed +41
-11
lines changed
Expand file tree Collapse file tree 4 files changed +41
-11
lines changed Original file line number Diff line number Diff line change @@ -380,8 +380,7 @@ finCWmap→CellMap n C D f =
380380 ... | inr n>m | inr n>sucm =
381381 cong (CW↪ D m)
382382 (funExt⁻ (cong (fmap ϕ) (ΣPathP (refl , (isProp<ᵗ _ _)))) x)
383- ∙ fcomm ϕ (m , <→<ᵗ n>m) x
384- ∙ funExt⁻ (cong (fmap ϕ) (ΣPathP (refl , (isProp<ᵗ _ _)))) _
383+ ∙ fcomm ϕ (m , <ᵗ-trans (<→<ᵗ n>sucm) <ᵗsucm) x
385384
386385 silly : (x : _) → smap ψ n x ≡ fmap ϕ (n , <ᵗsucm {n}) x
387386 silly x with (Dichotomyℕ n n)
Original file line number Diff line number Diff line change @@ -65,6 +65,10 @@ fromℕ≤ : (m n : ℕ) → m ≤′ n → Fin (suc n)
6565fromℕ≤ zero _ _ = fzero
6666fromℕ≤ (suc m) (suc n) m≤n = fsuc (fromℕ≤ m n m≤n)
6767
68+ -- Conversion from ℕ with an inductive definition of ≤
69+ fromℕ≤ᵗ : (m n : ℕ) → m ≤ᵗ n → Fin (suc n)
70+ fromℕ≤ᵗ m n t = m , t
71+
6872-- A case analysis helper for induction.
6973fsplit
7074 : ∀ (fj : Fin (suc k))
Original file line number Diff line number Diff line change @@ -6,13 +6,13 @@ open import Agda.Builtin.Nat
66open import Agda.Builtin.FromNat
77 renaming (Number to HasFromNat)
88open import Cubical.Data.Fin.Base
9- using (Fin; fromℕ≤)
10- open import Cubical.Data.Nat.Order.Recursive
11- using (_≤_ )
9+ using (Fin; fromℕ≤ᵗ )
10+ open import Cubical.Data.Nat.Order.Inductive
11+ using (_≤ᵗ_ )
1212
1313instance
1414 fromNatFin : {n : _} → HasFromNat (Fin (suc n))
1515 fromNatFin {n} = record
16- { Constraint = λ m → m ≤ n
17- ; fromNat = λ m ⦃ m≤n ⦄ → fromℕ≤ m n m≤n
16+ { Constraint = λ m → m ≤ᵗ n
17+ ; fromNat = λ m ⦃ m≤n ⦄ → fromℕ≤ᵗ m n m≤n
1818 }
Original file line number Diff line number Diff line change @@ -9,17 +9,44 @@ open import Cubical.Data.Empty as ⊥
99open import Cubical.Data.Unit
1010open import Cubical.Data.Sigma
1111
12+ open import Cubical.Data.Bool.Base hiding (_≟_)
13+
1214open import Cubical.Induction.WellFounded
1315
1416open import Cubical.Relation.Nullary
1517
1618-- TODO: unify with recursive.agda
1719
18- -- inductive definition of <
20+ -- alternative definition of <
1921_<ᵗ_ : (n m : ℕ) → Type
20- n <ᵗ zero = ⊥
21- zero <ᵗ suc m = Unit
22- suc n <ᵗ suc m = n <ᵗ m
22+ n <ᵗ m = Bool→Type (n <ᵇ m)
23+
24+ _≤ᵗ_ : (n m : ℕ) → Type
25+ n ≤ᵗ m = n <ᵗ suc m
26+
27+ _>ᵗ_ : (n m : ℕ) → Type
28+ n >ᵗ m = m <ᵗ n
29+
30+ _≥ᵗ_ : (n m : ℕ) → Type
31+ n ≥ᵗ m = m ≤ᵗ n
32+
33+ -- <ᵗ satisfies the following judgmental equalities,
34+ -- which give <ᵗ an "inductive" presentation, justifying the module name:
35+ private
36+ _ : ∀ {n} → n <ᵗ zero ≡ ⊥
37+ _ = refl
38+
39+ _ : ∀ {m} → zero <ᵗ suc m ≡ Unit
40+ _ = refl
41+
42+ _ : ∀ {n m} → suc n <ᵗ suc m ≡ n <ᵗ m
43+ _ = refl
44+
45+ -- direct inductive definition (avoided for performance reasons):
46+ -- _<ᵗ_ : (n m : ℕ) → Type
47+ -- n <ᵗ zero = ⊥
48+ -- zero <ᵗ suc m = Unit
49+ -- suc n <ᵗ suc m = n <ᵗ m
2350
2451data Trichotomyᵗ (m n : ℕ) : Type₀ where
2552 lt : m <ᵗ n → Trichotomyᵗ m n
You can’t perform that action at this time.
0 commit comments