From f069c6a4576d9c4d26666371d08a2a85954c413e Mon Sep 17 00:00:00 2001 From: wadler Date: Tue, 27 Mar 2018 16:19:03 -0300 Subject: [PATCH] extra stuff --- src/extra/Exists.agda | 54 ------------------------------------------- src/extra/Extra.lagda | 25 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 54 deletions(-) delete mode 100644 src/extra/Exists.agda create mode 100644 src/extra/Extra.lagda diff --git a/src/extra/Exists.agda b/src/extra/Exists.agda deleted file mode 100644 index d3bbd2a2..00000000 --- a/src/extra/Exists.agda +++ /dev/null @@ -1,54 +0,0 @@ -import Relation.Binary.PropositionalEquality as Eq -open Eq using (_≡_; refl; sym; trans; cong) -open Eq.≡-Reasoning -open import Data.Nat using (ℕ; zero; suc; _+_; _*_) -open import Data.Nat.Properties.Simple using (+-suc; +-right-identity) -open import Relation.Nullary using (¬_) -open import Function using (_∘_) -open import Data.Product using (_×_; _,_; proj₁; proj₂) -open import Data.Sum using (_⊎_; inj₁; inj₂) - -data ∃ {A : Set} (B : A → Set) : Set where - _,_ : (x : A) → B x → ∃ B - -syntax ∃ {A} (λ x → B) = ∃[ x ∈ A ] B - - -data even : ℕ → Set -data odd : ℕ → Set - -data even where - even-zero : even zero - even-suc : ∀ {n : ℕ} → odd n → even (suc n) - -data odd where - odd-suc : ∀ {n : ℕ} → even n → odd (suc n) - -lemma : ∀ (m : ℕ) → 2 * suc m ≡ suc (suc (2 * m)) -lemma m = - begin - 2 * suc m - ≡⟨⟩ - suc m + (suc m + zero) - ≡⟨⟩ - suc (m + (suc (m + zero))) - ≡⟨ cong suc (+-suc m (m + zero)) ⟩ - suc (suc (m + (m + zero))) - ≡⟨⟩ - suc (suc (2 * m)) - ∎ - -∃-even : ∀ {n : ℕ} → even n → ∃[ m ∈ ℕ ] (n ≡ 2 * m) -∃-odd : ∀ {n : ℕ} → odd n → ∃[ m ∈ ℕ ] (n ≡ 1 + 2 * m) - -∃-even even-zero = zero , refl -∃-even (even-suc o) with ∃-odd o -... | m , eqn rewrite eqn = suc m , sym (lemma m) - -∃-odd (odd-suc e) with ∃-even e -... | m , eqn rewrite eqn = m , refl - -∃-even′ : ∀ {n : ℕ} → even n → ∃[ m ∈ ℕ ] (n ≡ 2 * m) -∃-even′ even-zero = zero , refl -∃-even′ (even-suc o) with ∃-odd o -... | m , eqn rewrite eqn | cong suc (+-right-identity m) = suc m , {!!} diff --git a/src/extra/Extra.lagda b/src/extra/Extra.lagda new file mode 100644 index 00000000..1db33539 --- /dev/null +++ b/src/extra/Extra.lagda @@ -0,0 +1,25 @@ +