Skip to content

Commit 692b6fa

Browse files
authored
punchOut preserves ordering (#1913)
1 parent efc0230 commit 692b6fa

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

CHANGELOG.md

+5
Original file line numberDiff line numberDiff line change
@@ -1806,6 +1806,11 @@ Other minor changes
18061806
18071807
ℕ-ℕ≡toℕ‿ℕ- : n ℕ-ℕ i ≡ toℕ (n ℕ- i)
18081808
1809+
punchIn-mono-≤ : ∀ i (j k : Fin n) → j ≤ k → punchIn i j ≤ punchIn i k
1810+
punchIn-cancel-≤ : ∀ i (j k : Fin n) → punchIn i j ≤ punchIn i k → j ≤ k
1811+
punchOut-mono-≤ : (i≢j : i ≢ j) (i≢k : i ≢ k) → j ≤ k → punchOut i≢j ≤ punchOut i≢k
1812+
punchOut-cancel-≤ : (i≢j : i ≢ j) (i≢k : i ≢ k) → punchOut i≢j ≤ punchOut i≢k → j ≤ k
1813+
18091814
lower₁-injective : lower₁ i n≢i ≡ lower₁ j n≢j → i ≡ j
18101815
pinch-injective : suc i ≢ j → suc i ≢ k → pinch i j ≡ pinch i k → j ≡ k
18111816

src/Data/Fin/Properties.agda

+26
Original file line numberDiff line numberDiff line change
@@ -802,6 +802,16 @@ punchIn-injective (suc i) (suc j) (suc k) ↑j+1≡↑k+1 =
802802
punchInᵢ≢i : i (j : Fin n) punchIn i j ≢ i
803803
punchInᵢ≢i (suc i) (suc j) = punchInᵢ≢i i j ∘ suc-injective
804804

805+
punchIn-mono-≤ : i (j k : Fin n) j ≤ k punchIn i j ≤ punchIn i k
806+
punchIn-mono-≤ zero _ _ j≤k = s≤s j≤k
807+
punchIn-mono-≤ (suc _) zero _ z≤n = z≤n
808+
punchIn-mono-≤ (suc i) (suc j) (suc k) (s≤s j≤k) = s≤s (punchIn-mono-≤ i j k j≤k)
809+
810+
punchIn-cancel-≤ : i (j k : Fin n) punchIn i j ≤ punchIn i k j ≤ k
811+
punchIn-cancel-≤ zero _ _ (s≤s j≤k) = j≤k
812+
punchIn-cancel-≤ (suc _) zero _ z≤n = z≤n
813+
punchIn-cancel-≤ (suc i) (suc j) (suc k) (s≤s ↑j≤↑k) = s≤s (punchIn-cancel-≤ i j k ↑j≤↑k)
814+
805815
------------------------------------------------------------------------
806816
-- punchOut
807817
------------------------------------------------------------------------
@@ -835,6 +845,22 @@ punchOut-injective {suc n} {suc i} {zero} {zero} _ _ _ = refl
835845
punchOut-injective {suc n} {suc i} {suc j} {suc k} i≢j i≢k pⱼ≡pₖ =
836846
cong suc (punchOut-injective (i≢j ∘ cong suc) (i≢k ∘ cong suc) (suc-injective pⱼ≡pₖ))
837847

848+
punchOut-mono-≤ : {i j k : Fin (suc n)} (i≢j : i ≢ j) (i≢k : i ≢ k)
849+
j ≤ k punchOut i≢j ≤ punchOut i≢k
850+
punchOut-mono-≤ {_ } {zero } {zero } {_ } 0≢0 _ z≤n = contradiction refl 0≢0
851+
punchOut-mono-≤ {_ } {zero } {suc _} {suc _} _ _ (s≤s j≤k) = j≤k
852+
punchOut-mono-≤ {suc _} {suc _} {zero } {_ } _ _ z≤n = z≤n
853+
punchOut-mono-≤ {suc _} {suc _} {suc _} {suc _} i≢j i≢k (s≤s j≤k) = s≤s (punchOut-mono-≤ (i≢j ∘ cong suc) (i≢k ∘ cong suc) j≤k)
854+
855+
punchOut-cancel-≤ : {i j k : Fin (suc n)} (i≢j : i ≢ j) (i≢k : i ≢ k)
856+
punchOut i≢j ≤ punchOut i≢k j ≤ k
857+
punchOut-cancel-≤ {_ } {zero } {zero } {_ } 0≢0 _ _ = contradiction refl 0≢0
858+
punchOut-cancel-≤ {_ } {zero } {suc _} {zero } _ 0≢0 _ = contradiction refl 0≢0
859+
punchOut-cancel-≤ {suc _} {zero } {suc _} {suc _} _ _ pⱼ≤pₖ = s≤s pⱼ≤pₖ
860+
punchOut-cancel-≤ {_ } {suc _} {zero } {_ } _ _ _ = z≤n
861+
punchOut-cancel-≤ {suc _} {suc _} {suc _} {zero } _ _ ()
862+
punchOut-cancel-≤ {suc _} {suc _} {suc _} {suc _} i≢j i≢k (s≤s pⱼ≤pₖ) = s≤s (punchOut-cancel-≤ (i≢j ∘ cong suc) (i≢k ∘ cong suc) pⱼ≤pₖ)
863+
838864
punchIn-punchOut : {i j : Fin (suc n)} (i≢j : i ≢ j)
839865
punchIn i (punchOut i≢j) ≡ j
840866
punchIn-punchOut {_} {zero} {zero} 0≢0 = contradiction refl 0≢0

0 commit comments

Comments
 (0)