@@ -47,6 +47,7 @@ open import Relation.Binary.PropositionalEquality.Properties as ≡
47
47
open import Relation.Nullary.Decidable as Dec
48
48
using (Dec; _because_; yes; no; _×-dec_; _⊎-dec_; map′)
49
49
open import Relation.Nullary.Negation.Core using (¬_; contradiction)
50
+ open import Relation.Nullary.Recomputable using (¬-recompute)
50
51
open import Relation.Nullary.Reflects using (Reflects; invert)
51
52
open import Relation.Unary as U
52
53
using (U; Pred; Decidable; _⊆_; Satisfiable; Universal)
@@ -506,30 +507,30 @@ inject!-< {suc n} {suc i} (suc k) = s≤s (inject!-< k)
506
507
-- lower₁
507
508
------------------------------------------------------------------------
508
509
509
- toℕ-lower₁ : ∀ i (p : n ≢ toℕ i) → toℕ (lower₁ i p) ≡ toℕ i
510
- toℕ-lower₁ {ℕ.zero} zero p = contradiction refl p
511
- toℕ-lower₁ {ℕ.suc m} zero p = refl
512
- toℕ-lower₁ {ℕ.suc m} (suc i) p = cong ℕ.suc (toℕ-lower₁ i (p ∘ cong ℕ.suc))
510
+ toℕ-lower₁ : ∀ i . (p : n ≢ toℕ i) → toℕ (lower₁ i p) ≡ toℕ i
511
+ toℕ-lower₁ {ℕ.zero} zero 0≢0 = lower₁-¬0≢0 0≢0
512
+ toℕ-lower₁ {ℕ.suc m} zero _ = refl
513
+ toℕ-lower₁ {ℕ.suc m} (suc i) ne = cong ℕ.suc (toℕ-lower₁ i (ne ∘ cong ℕ.suc))
513
514
514
- lower₁-injective : ∀ {n≢i : n ≢ toℕ i} {n≢j : n ≢ toℕ j} →
515
+ lower₁-injective : ∀ . {n≢i : n ≢ toℕ i} . {n≢j : n ≢ toℕ j} →
515
516
lower₁ i n≢i ≡ lower₁ j n≢j → i ≡ j
516
- lower₁-injective {zero} {zero} {_} {n≢i } {_} _ = contradiction refl n≢i
517
- lower₁-injective {zero} {_} {zero} {_} {n≢j } _ = contradiction refl n≢j
518
- lower₁-injective {suc n} {zero} {zero} {_} {_} refl = refl
519
- lower₁-injective {suc n} {suc i} {suc j} {n≢i} {n≢j} eq =
517
+ lower₁-injective {zero} {zero} {_} {0≢0 } {_} _ = lower₁-¬0≢0 0≢0
518
+ lower₁-injective {zero} {_} {zero} {_} {0≢0 } _ = lower₁-¬0≢0 0≢0
519
+ lower₁-injective {suc n} {zero} {zero} {_} {_} _ = refl
520
+ lower₁-injective {suc n} {suc i} {suc j} {_} {_} eq =
520
521
cong suc (lower₁-injective (suc-injective eq))
521
522
522
523
------------------------------------------------------------------------
523
524
-- inject₁ and lower₁
524
525
525
- inject₁-lower₁ : ∀ (i : Fin (suc n)) (n≢i : n ≢ toℕ i) →
526
+ inject₁-lower₁ : ∀ (i : Fin (suc n)) . (n≢i : n ≢ toℕ i) →
526
527
inject₁ (lower₁ i n≢i) ≡ i
527
- inject₁-lower₁ {zero} zero 0≢0 = contradiction refl 0≢0
528
+ inject₁-lower₁ {zero} zero 0≢0 = lower₁-¬0≢0 0≢0
528
529
inject₁-lower₁ {suc n} zero _ = refl
529
530
inject₁-lower₁ {suc n} (suc i) n+1≢i+1 =
530
531
cong suc (inject₁-lower₁ i (n+1≢i+1 ∘ cong suc))
531
532
532
- lower₁-inject₁′ : ∀ (i : Fin n) (n≢i : n ≢ toℕ (inject₁ i)) →
533
+ lower₁-inject₁′ : ∀ (i : Fin n) . (n≢i : n ≢ toℕ (inject₁ i)) →
533
534
lower₁ (inject₁ i) n≢i ≡ i
534
535
lower₁-inject₁′ zero _ = refl
535
536
lower₁-inject₁′ (suc i) n+1≢i+1 =
@@ -539,15 +540,15 @@ lower₁-inject₁ : ∀ (i : Fin n) →
539
540
lower₁ (inject₁ i) (toℕ-inject₁-≢ i) ≡ i
540
541
lower₁-inject₁ i = lower₁-inject₁′ i (toℕ-inject₁-≢ i)
541
542
542
- lower₁-irrelevant : ∀ (i : Fin (suc n)) (n≢i₁ n≢i₂ : n ≢ toℕ i) →
543
+ lower₁-irrelevant : ∀ (i : Fin (suc n)) . (n≢i₁ n≢i₂ : n ≢ toℕ i) →
543
544
lower₁ i n≢i₁ ≡ lower₁ i n≢i₂
544
- lower₁-irrelevant {zero} zero 0≢0 _ = contradiction refl 0≢0
545
+ lower₁-irrelevant {zero} zero 0≢0 _ = lower₁-¬0≢0 0≢0
545
546
lower₁-irrelevant {suc n} zero _ _ = refl
546
547
lower₁-irrelevant {suc n} (suc i) _ _ =
547
548
cong suc (lower₁-irrelevant i _ _)
548
549
549
550
inject₁≡⇒lower₁≡ : ∀ {i : Fin n} {j : Fin (ℕ.suc n)} →
550
- (n≢j : n ≢ toℕ j) → inject₁ i ≡ j → lower₁ j n≢j ≡ i
551
+ . (n≢j : n ≢ toℕ j) → inject₁ i ≡ j → lower₁ j n≢j ≡ i
551
552
inject₁≡⇒lower₁≡ n≢j i≡j = inject₁-injective (trans (inject₁-lower₁ _ n≢j) (sym i≡j))
552
553
553
554
------------------------------------------------------------------------
@@ -561,6 +562,12 @@ lower-injective {n = suc n} zero zero eq = refl
561
562
lower-injective {n = suc n} (suc i) (suc j) eq =
562
563
cong suc (lower-injective i j (suc-injective eq))
563
564
565
+ lower₁≗lower : ∀ (i : Fin (suc n)) .(n≢i : n ≢ toℕ i) →
566
+ lower₁ i n≢i ≡ lower i (ℕ.≤∧≢⇒< (toℕ≤pred[n]′ i) (n≢i ∘ sym))
567
+ lower₁≗lower {n = zero} zero 0≢0 = lower₁-¬0≢0 0≢0
568
+ lower₁≗lower {n = suc _ } zero _ = refl
569
+ lower₁≗lower {n = suc _ } (suc i) ne = cong suc (lower₁≗lower i (ne ∘ cong suc))
570
+
564
571
------------------------------------------------------------------------
565
572
-- inject≤
566
573
------------------------------------------------------------------------
0 commit comments