diff nat.agda @ 112:43731a549950

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 02 Sep 2020 11:29:04 +0900
parents 482ef04890f8
children 2eb62a2a34f2
line wrap: on
line diff
--- a/nat.agda	Tue Sep 01 21:58:15 2020 +0900
+++ b/nat.agda	Wed Sep 02 11:29:04 2020 +0900
@@ -311,3 +311,21 @@
                          suc (suc k * suc m)
                       ∎   where open ≤-Reasoning
              open ≡-Reasoning
+
+open import Data.List
+
+ℕL-inject : {h h1 : ℕ } {x y : List ℕ } → h ∷ x ≡ h1 ∷ y → h ≡ h1
+ℕL-inject refl = refl
+
+ℕL-inject-t : {h h1 : ℕ } {x y : List ℕ } → h ∷ x ≡ h1 ∷ y → x ≡ y
+ℕL-inject-t refl = refl
+
+ℕL-eq? : (x y : List ℕ ) → Dec (x ≡ y )
+ℕL-eq? [] [] = yes refl
+ℕL-eq? [] (x ∷ y) = no (λ ())
+ℕL-eq? (x ∷ x₁) [] = no (λ ())
+ℕL-eq? (h ∷ x) (h1 ∷ y) with h ≟ h1 | ℕL-eq? x y
+... | yes y1 | yes y2 = yes ( cong₂ (λ j k → j ∷ k ) y1 y2 )
+... | yes y1 | no n = no (λ e → n (ℕL-inject-t e))
+... | no n  | t = no (λ e → n (ℕL-inject e)) 
+