annotate src/partfunc.agda @ 1489:0dbbae768c90 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 01 Jul 2024 23:04:17 +0900
parents d0b4be1cab0d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
1 {-# OPTIONS --cubical-compatible --safe #-}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
2 open import Level
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
3 open import Ordinals
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
4 open import logic
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
5 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
6
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 open import Level
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
8 open import Ordinals
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
9 import HODBase
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
10 import OD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
11 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
12 module partfunc {n : Level } (O : Ordinals {n} ) (HODAxiom : HODBase.ODAxiom O) (ho< : OD.ODAxiom-ho< O HODAxiom ) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
13
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
14 open import Relation.Binary.PropositionalEquality hiding ( [_] )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
15 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
16
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
17 import OrdUtil
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
18
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
19 open Ordinals.Ordinals O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
20 open Ordinals.IsOrdinals isOrdinal
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
21 import ODUtil
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 open import logic
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
24 open import nat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
25
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
26 open OrdUtil O
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
27 open ODUtil O HODAxiom ho<
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 open _∧_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 open _∨_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 open Bool
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
33 open HODBase._==_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
34
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
35 open HODBase.ODAxiom HODAxiom
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
36 open OD O HODAxiom
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
37
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
38 open HODBase.HOD
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
39
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
40
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
41 open import Relation.Nullary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
42 open import Relation.Binary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
43 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
44 open import Relation.Binary
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
45 open import Relation.Binary.Core
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
46 open import Relation.Binary.PropositionalEquality
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
47 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
48
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
49 open import Data.Empty
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
50 open import Data.Unit using ( ⊤ ; tt )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
51 open import Data.List hiding (filter ; find)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
52 open import Data.Maybe
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
53
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
54 open _∧_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
55 open _∨_
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
56 open Bool
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
57
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
58 data Two : Set where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
59 i0 : Two
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
60 i1 : Two
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
61
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 ----
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 -- Partial Function without ZF
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
67 record PFunc {n m l : Level } (Dom : Set n) (Cod : Set m) : Set (suc (n ⊔ m ⊔ l)) where
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68 field
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
69 dom : Dom → Set l
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 pmap : (x : Dom ) → dom x → Cod
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 meq : {x : Dom } → { p q : dom x } → pmap x p ≡ pmap x q
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 ----
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 -- PFunc (Lift n Nat) Cod is equivalent to List (Maybe Cod)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
78 data Findp {n : Level} {Cod : Set n} : List (Maybe Cod) → (x : Nat) → Set (suc n) where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
79 v0 : {f : List (Maybe Cod)} → ( v : Cod ) → Findp ( just v ∷ f ) Zero
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
80 vn : {f : List (Maybe Cod)} {d : Maybe Cod} → {x : Nat} → Findp f x → Findp (d ∷ f) (Suc x)
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 open PFunc
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
84 find : {n : Level} {Cod : Set n} → (f : List (Maybe Cod) ) → (x : Nat) → Findp f x → Cod
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 find (just v ∷ _) 0 (v0 v) = v
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 find (_ ∷ n) (Suc i) (vn p) = find n i p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
88 findpeq : {n : Level} {Cod : Set n} → (f : List (Maybe Cod)) → {x : Nat} {p q : Findp f x } → find f x p ≡ find f x q
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 findpeq n {0} {v0 _} {v0 _} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 findpeq [] {Suc x} {()}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 findpeq (just x₁ ∷ n) {Suc x} {vn p} {vn q} = findpeq n {x} {p} {q}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 findpeq (nothing ∷ n) {Suc x} {vn p} {vn q} = findpeq n {x} {p} {q}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
94 List→PFunc : {Cod : Set (suc n)} → List (Maybe Cod) → PFunc (Lift n Nat) Cod
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
95 List→PFunc fp = record { dom = λ x → Lift zero (Findp fp (lower x))
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 ; pmap = λ x y → find fp (lower x) (lower y)
1472
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1175
diff changeset
97 ; meq = λ {x} {p} {q} → findpeq fp {lower x} {lower p} {lower q}
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98 }
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 ----
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 -- to List (Maybe Two) is a Latice
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 --
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 _3⊆b_ : (f g : List (Maybe Two)) → Bool
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 [] 3⊆b [] = true
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 [] 3⊆b (nothing ∷ g) = [] 3⊆b g
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107 [] 3⊆b (_ ∷ g) = true
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 (nothing ∷ f) 3⊆b [] = f 3⊆b []
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 (nothing ∷ f) 3⊆b (_ ∷ g) = f 3⊆b g
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 (just i0 ∷ f) 3⊆b (just i0 ∷ g) = f 3⊆b g
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 (just i1 ∷ f) 3⊆b (just i1 ∷ g) = f 3⊆b g
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 _ 3⊆b _ = false
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 _3⊆_ : (f g : List (Maybe Two)) → Set
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115 f 3⊆ g = (f 3⊆b g) ≡ true
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 _3∩_ : (f g : List (Maybe Two)) → List (Maybe Two)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 [] 3∩ (nothing ∷ g) = nothing ∷ ([] 3∩ g)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 [] 3∩ g = []
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 (nothing ∷ f) 3∩ [] = nothing ∷ f 3∩ []
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 f 3∩ [] = []
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122 (just i0 ∷ f) 3∩ (just i0 ∷ g) = just i0 ∷ ( f 3∩ g )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 (just i1 ∷ f) 3∩ (just i1 ∷ g) = just i1 ∷ ( f 3∩ g )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 (_ ∷ f) 3∩ (_ ∷ g) = nothing ∷ ( f 3∩ g )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
126 3∩⊆f : { f g : List (Maybe Two) } → (f 3∩ g ) 3⊆ f
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
127 3∩⊆f {[]} {[]} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
128 3∩⊆f {[]} {just _ ∷ g} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
129 3∩⊆f {[]} {nothing ∷ g} = 3∩⊆f {[]} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
130 3∩⊆f {just _ ∷ f} {[]} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
131 3∩⊆f {nothing ∷ f} {[]} = 3∩⊆f {f} {[]}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
132 3∩⊆f {just i0 ∷ f} {just i0 ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
133 3∩⊆f {just i1 ∷ f} {just i1 ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
134 3∩⊆f {just i0 ∷ f} {just i1 ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
135 3∩⊆f {just i1 ∷ f} {just i0 ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
136 3∩⊆f {nothing ∷ f} {just _ ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
137 3∩⊆f {just i0 ∷ f} {nothing ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
138 3∩⊆f {just i1 ∷ f} {nothing ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
139 3∩⊆f {nothing ∷ f} {nothing ∷ g} = 3∩⊆f {f} {g}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
140
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
141 3∩sym : { f g : List (Maybe Two) } → (f 3∩ g ) ≡ (g 3∩ f )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
142 3∩sym {[]} {[]} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
143 3∩sym {[]} {just _ ∷ g} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
144 3∩sym {[]} {nothing ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {[]} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
145 3∩sym {just _ ∷ f} {[]} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
146 3∩sym {nothing ∷ f} {[]} = cong (λ k → nothing ∷ k) (3∩sym {f} {[]})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
147 3∩sym {just i0 ∷ f} {just i0 ∷ g} = cong (λ k → just i0 ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
148 3∩sym {just i0 ∷ f} {just i1 ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
149 3∩sym {just i1 ∷ f} {just i0 ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
150 3∩sym {just i1 ∷ f} {just i1 ∷ g} = cong (λ k → just i1 ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
151 3∩sym {just i0 ∷ f} {nothing ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
152 3∩sym {just i1 ∷ f} {nothing ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
153 3∩sym {nothing ∷ f} {just i0 ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
154 3∩sym {nothing ∷ f} {just i1 ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
155 3∩sym {nothing ∷ f} {nothing ∷ g} = cong (λ k → nothing ∷ k) (3∩sym {f} {g})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
156
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
157 3⊆-[] : { h : List (Maybe Two) } → [] 3⊆ h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
158 3⊆-[] {[]} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
159 3⊆-[] {just _ ∷ h} = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
160 3⊆-[] {nothing ∷ h} = 3⊆-[] {h}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
161
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
162 3⊆trans : { f g h : List (Maybe Two) } → f 3⊆ g → g 3⊆ h → f 3⊆ h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
163 3⊆trans {[]} {[]} {[]} f<g g<h = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
164 3⊆trans {[]} {[]} {just _ ∷ h} f<g g<h = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
165 3⊆trans {[]} {[]} {nothing ∷ h} f<g g<h = 3⊆trans {[]} {[]} {h} refl g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
166 3⊆trans {[]} {nothing ∷ g} {[]} f<g g<h = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
167 3⊆trans {[]} {just _ ∷ g} {just _ ∷ h} f<g g<h = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
168 3⊆trans {[]} {nothing ∷ g} {just _ ∷ h} f<g g<h = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
169 3⊆trans {[]} {nothing ∷ g} {nothing ∷ h} f<g g<h = 3⊆trans {[]} {g} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
170 3⊆trans {nothing ∷ f} {[]} {[]} f<g g<h = f<g
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
171 3⊆trans {nothing ∷ f} {[]} {just _ ∷ h} f<g g<h = 3⊆trans {f} {[]} {h} f<g (3⊆-[] {h})
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
172 3⊆trans {nothing ∷ f} {[]} {nothing ∷ h} f<g g<h = 3⊆trans {f} {[]} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
173 3⊆trans {nothing ∷ f} {nothing ∷ g} {[]} f<g g<h = 3⊆trans {f} {g} {[]} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
174 3⊆trans {nothing ∷ f} {nothing ∷ g} {just _ ∷ h} f<g g<h = 3⊆trans {f} {g} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
175 3⊆trans {nothing ∷ f} {nothing ∷ g} {nothing ∷ h} f<g g<h = 3⊆trans {f} {g} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
176 3⊆trans {[]} {just i0 ∷ g} {[]} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
177 3⊆trans {[]} {just i1 ∷ g} {[]} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
178 3⊆trans {[]} {just x ∷ g} {nothing ∷ h} f<g g<h = 3⊆-[] {h}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
179 3⊆trans {just i0 ∷ f} {[]} {h} () g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
180 3⊆trans {just i1 ∷ f} {[]} {h} () g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
181 3⊆trans {just x ∷ f} {just i0 ∷ g} {[]} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
182 3⊆trans {just x ∷ f} {just i1 ∷ g} {[]} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
183 3⊆trans {just i0 ∷ f} {just i0 ∷ g} {just i0 ∷ h} f<g g<h = 3⊆trans {f} {g} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
184 3⊆trans {just i1 ∷ f} {just i1 ∷ g} {just i1 ∷ h} f<g g<h = 3⊆trans {f} {g} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
185 3⊆trans {just x ∷ f} {just i0 ∷ g} {nothing ∷ h} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
186 3⊆trans {just x ∷ f} {just i1 ∷ g} {nothing ∷ h} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
187 3⊆trans {just i0 ∷ f} {nothing ∷ g} {_} () g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
188 3⊆trans {just i1 ∷ f} {nothing ∷ g} {_} () g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
189 3⊆trans {nothing ∷ f} {just i0 ∷ g} {[]} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
190 3⊆trans {nothing ∷ f} {just i1 ∷ g} {[]} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
191 3⊆trans {nothing ∷ f} {just i0 ∷ g} {just i0 ∷ h} f<g g<h = 3⊆trans {f} {g} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
192 3⊆trans {nothing ∷ f} {just i1 ∷ g} {just i1 ∷ h} f<g g<h = 3⊆trans {f} {g} {h} f<g g<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
193 3⊆trans {nothing ∷ f} {just i0 ∷ g} {nothing ∷ h} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
194 3⊆trans {nothing ∷ f} {just i1 ∷ g} {nothing ∷ h} f<g ()
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
195
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
196 3⊆∩f : { f g h : List (Maybe Two) } → f 3⊆ g → f 3⊆ h → f 3⊆ (g 3∩ h )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
197 3⊆∩f {[]} {[]} {[]} f<g f<h = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
198 3⊆∩f {[]} {[]} {x ∷ h} f<g f<h = 3⊆-[] {[] 3∩ (x ∷ h)}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
199 3⊆∩f {[]} {x ∷ g} {h} f<g f<h = 3⊆-[] {(x ∷ g) 3∩ h}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
200 3⊆∩f {nothing ∷ f} {[]} {[]} f<g f<h = 3⊆∩f {f} {[]} {[]} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
201 3⊆∩f {nothing ∷ f} {[]} {just _ ∷ h} f<g f<h = f<g
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
202 3⊆∩f {nothing ∷ f} {[]} {nothing ∷ h} f<g f<h = 3⊆∩f {f} {[]} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
203 3⊆∩f {just i0 ∷ f} {just i0 ∷ g} {just i0 ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
204 3⊆∩f {just i1 ∷ f} {just i1 ∷ g} {just i1 ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
205 3⊆∩f {nothing ∷ f} {just _ ∷ g} {[]} f<g f<h = f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
206 3⊆∩f {nothing ∷ f} {just i0 ∷ g} {just i0 ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
207 3⊆∩f {nothing ∷ f} {just i0 ∷ g} {just i1 ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
208 3⊆∩f {nothing ∷ f} {just i1 ∷ g} {just i0 ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
209 3⊆∩f {nothing ∷ f} {just i1 ∷ g} {just i1 ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
210 3⊆∩f {nothing ∷ f} {just i0 ∷ g} {nothing ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
211 3⊆∩f {nothing ∷ f} {just i1 ∷ g} {nothing ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
212 3⊆∩f {nothing ∷ f} {nothing ∷ g} {[]} f<g f<h = 3⊆∩f {f} {g} {[]} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
213 3⊆∩f {nothing ∷ f} {nothing ∷ g} {just _ ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
214 3⊆∩f {nothing ∷ f} {nothing ∷ g} {nothing ∷ h} f<g f<h = 3⊆∩f {f} {g} {h} f<g f<h
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
215
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
216 3↑22 : (f : Nat → Two) (i j : Nat) → List (Maybe Two)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
217 3↑22 f Zero j = []
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
218 3↑22 f (Suc i) j = just (f j) ∷ 3↑22 f i (Suc j)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
219
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
220 _3↑_ : (Nat → Two) → Nat → List (Maybe Two)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
221 _3↑_ f i = 3↑22 f i 0
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
222
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
223 3↑< : {f : Nat → Two} → { x y : Nat } → x ≤ y → (_3↑_ f x) 3⊆ (_3↑_ f y)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
224 3↑< {f} {x} {y} x<y = lemma x y 0 x<y where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
225 lemma : (x y i : Nat) → x ≤ y → (3↑22 f x i ) 3⊆ (3↑22 f y i )
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
226 lemma 0 y i z≤n with f i
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
227 lemma Zero Zero i z≤n | i0 = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
228 lemma Zero (Suc y) i z≤n | i0 = 3⊆-[] {3↑22 f (Suc y) i}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
229 lemma Zero Zero i z≤n | i1 = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
230 lemma Zero (Suc y) i z≤n | i1 = 3⊆-[] {3↑22 f (Suc y) i}
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
231 lemma (Suc x) (Suc y) i (s≤s x<y) with f i
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
232 lemma (Suc x) (Suc y) i (s≤s x<y) | i0 = lemma x y (Suc i) x<y
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
233 lemma (Suc x) (Suc y) i (s≤s x<y) | i1 = lemma x y (Suc i) x<y
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
234
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
235 Finite3b : (p : List (Maybe Two) ) → Bool
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
236 Finite3b [] = true
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
237 Finite3b (just _ ∷ f) = Finite3b f
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
238 Finite3b (nothing ∷ f) = false
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
239
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
240 finite3cov : (p : List (Maybe Two) ) → List (Maybe Two)
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
241 finite3cov [] = []
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
242 finite3cov (just y ∷ x) = just y ∷ finite3cov x
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
243 finite3cov (nothing ∷ x) = just i0 ∷ finite3cov x
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
244
1096
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
245 record F-Filter {n : Level} (L : Set n) (PL : (L → Set n) → Set n) ( _⊆_ : L → L → Set n) (_∩_ : L → L → L ) : Set (suc n) where
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
246 field
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
247 filter : L → Set n
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
248 f⊆P : PL filter
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
249 filter1 : { p q : L } → PL (λ x → q ⊆ x ) → filter p → p ⊆ q → filter q
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
250 filter2 : { p q : L } → filter p → filter q → filter (p ∩ q)
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
251
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
252 record F-Dense {n : Level} (L : Set n) (PL : (L → Set n) → Set n) ( _⊆_ : L → L → Set n) (_∩_ : L → L → L ) : Set (suc n) where
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
253 field
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
254 dense : L → Set n
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
255 d⊆P : PL dense
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
256 dense-f : L → L
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
257 dense-d : { p : L} → PL (λ x → p ⊆ x ) → dense ( dense-f p )
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
258 dense-p : { p : L} → PL (λ x → p ⊆ x ) → p ⊆ (dense-f p)
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
259
55ab5de1ae02 recovery
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 434
diff changeset
260
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1096
diff changeset
261 Dense-3 : F-Dense (List (Maybe Two) ) (λ x → ⊤ ) _3⊆_ _3∩_
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
262 Dense-3 = record {
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
263 dense = λ x → Finite3b x ≡ true
1175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 1096
diff changeset
264 ; d⊆P = tt
431
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
265 ; dense-f = λ x → finite3cov x
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
266 ; dense-d = λ {p} d → lemma1 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
267 ; dense-p = λ {p} d → lemma2 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
268 } where
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
269 lemma1 : (p : List (Maybe Two) ) → Finite3b (finite3cov p) ≡ true
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
270 lemma1 [] = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
271 lemma1 (just i0 ∷ p) = lemma1 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
272 lemma1 (just i1 ∷ p) = lemma1 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
273 lemma1 (nothing ∷ p) = lemma1 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
274 lemma2 : (p : List (Maybe Two)) → p 3⊆ finite3cov p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
275 lemma2 [] = refl
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
276 lemma2 (just i0 ∷ p) = lemma2 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
277 lemma2 (just i1 ∷ p) = lemma2 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
278 lemma2 (nothing ∷ p) = lemma2 p
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
279
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
280 -- min = Data.Nat._⊓_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
281 -- m≤m⊔n = Data.Nat._⊔_
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
282 -- open import Data.Nat.Properties
a5f8084b8368 reorganiztion for apkg
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
283