From 02a0f87be944b1d43fda265058b891f419d25b65 Mon Sep 17 00:00:00 2001 From: Chloe Brown Date: Tue, 16 Mar 2021 18:45:27 +0000 Subject: Change Language definition to respects instead of custom congruence. --- src/Cfe/Judgement/Properties.agda | 112 ++++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 40 deletions(-) (limited to 'src/Cfe/Judgement/Properties.agda') diff --git a/src/Cfe/Judgement/Properties.agda b/src/Cfe/Judgement/Properties.agda index 101994b..1c06fcd 100644 --- a/src/Cfe/Judgement/Properties.agda +++ b/src/Cfe/Judgement/Properties.agda @@ -13,11 +13,65 @@ open import Data.Empty open import Data.Fin as F hiding (cast) open import Data.Fin.Properties open import Data.Nat as ℕ -open import Data.Nat.Properties +open import Data.Nat.Properties as NP open import Data.Vec open import Data.Vec.Properties open import Function open import Relation.Binary.PropositionalEquality +open import Relation.Nullary + +private + raise-mono : ∀ {m n i j} → i F.≤ j → raise {n} m i F.≤ raise m j + raise-mono {zero} i≤j = i≤j + raise-mono {suc m} i≤j = s≤s (raise-mono i≤j) + + raise≤ : ∀ {m} n i → n ℕ.≤ toℕ (raise {m} n i) + raise≤ zero i = z≤n + raise≤ (suc n) i = s≤s (raise≤ n i) + + inject+≤raise : ∀ {m n} i j → inject+ {suc n} m i F.≤ F.cast (+-suc n m) (raise {suc m} n j) + inject+≤raise {m} {n} i j = begin + toℕ (inject+ m i) ≡˘⟨ toℕ-inject+ m i ⟩ + toℕ i ≤⟨ NP.<⇒≤pred (toℕ