changeset 26:7ce76b3acc62

improve finite
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 05 Nov 2018 10:47:12 +0900
parents 256b7a6de863
children caf9b6aebd24
files agda/nfa.agda
diffstat 1 files changed, 27 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/agda/nfa.agda	Mon Nov 05 08:59:31 2018 +0900
+++ b/agda/nfa.agda	Mon Nov 05 10:47:12 2018 +0900
@@ -37,31 +37,45 @@
         : Set  where
      field
         fin : Fin n
-        Q←F : {n : ℕ } → Fin n → Q
-        F←Q : {n : ℕ } → Q → Fin n 
-        finiso→ : {n : ℕ } → (q : Q) → Q←F {n} ( F←Q q ) ≡ q
-        finiso← : {n : ℕ } → (f : Fin n ) → F←Q ( Q←F f ) ≡ f
+        Q←F : {n : ℕ} → Fin n → Q
+        F←Q : Q → Fin n 
+        finiso→ : (q : Q) → Q←F ( F←Q q ) ≡ q
+        finiso← : (f : Fin n ) → F←Q ( Q←F f ) ≡ f
      exists : ( Q → Bool ) → Bool
      exists p = exists1 fin p where
-         exists1 : {n : ℕ } → (f : Fin n ) → ( Q → Bool ) → Bool
+         exists1 : {n : ℕ} → Fin n → ( Q → Bool ) → Bool
          exists1 ( Fin.zero ) _ = false
          exists1 ( Fin.suc f ) p = p (Q←F f) ∧ exists1 f p
 
 finState1 : FiniteSet States1 3
 finState1 = record {
         fin = fromℕ 2
-      ; Q←F = {!!}
-      ; F←Q  = {!!}
-      ; finiso→ = {!!}
-      ; finiso← = {!!}
+      ; Q←F = Q←F
+      ; F←Q  = F←Q
+      ; finiso→ = finiso→
+      ; finiso← = finiso←
    } where
-       Q←F : {n : ℕ } → Fin n → States1
+       less : {n : ℕ} → Fin n → 
+       less = ?
+       Q←F : {n : ℕ} → Fin n → States1
        Q←F zero = sr
        Q←F (suc zero) = ss
        Q←F (suc (suc zero)) = st
-       Q←F (suc (suc (suc _)))  = {!!}
-       F←Q : {n : ℕ } → States1 → Fin n
-       F←Q = {!!}
+       Q←F (suc (suc (suc _))) = st
+       F←Q : States1 → Fin 3
+       F←Q sr = zero
+       F←Q ss = suc (zero)
+       F←Q st = suc ( suc zero )
+       finiso→ : (q : States1) → Q←F (F←Q q) ≡ q
+       finiso→ sr = refl
+       finiso→ ss = refl
+       finiso→ st = refl
+       finiso← : (f : Fin 3) → F←Q (Q←F f) ≡ f
+       finiso← zero = refl
+       finiso← (suc zero) = refl
+       finiso← (suc (suc zero)) = refl
+       finiso← (suc (suc (suc f))) = {!!}
+
 
 open FiniteSet