Mercurial > hg > Members > kono > Proof > galois
comparison FLComm.agda @ 224:71e08656273b
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 07 Dec 2020 22:30:29 +0900 |
parents | 9da456c2bfe3 |
children | 08a99237e56e |
comparison
equal
deleted
inserted
replaced
223:9da456c2bfe3 | 224:71e08656273b |
---|---|
99 CommFListN : ℕ → FList n | 99 CommFListN : ℕ → FList n |
100 CommFListN 0 = ∀Flist fmax | 100 CommFListN 0 = ∀Flist fmax |
101 CommFListN (suc i) = CommFList (CommFListN i) | 101 CommFListN (suc i) = CommFList (CommFListN i) |
102 | 102 |
103 -- all comm cobmbination in P and Q | 103 -- all comm cobmbination in P and Q |
104 record AnyComm (P Q : FList n) : Set where | 104 record AnyComm (p0 q0 : FL n) (P Q : FList n) : Set where |
105 field | 105 field |
106 commList : FList n | 106 commList : FList n |
107 commAny : (p q : FL n) → Any ( p ≡_ ) P → Any ( q ≡_ ) Q → Any (perm→FL [ FL→perm p , FL→perm q ] ≡_) commList | 107 commAny : (p q : FL n) |
108 → Any ( p ≡_ ) P → Any ( q ≡_ ) Q | |
109 → p0 f≤ p → q0 f≤ q | |
110 → Any (perm→FL [ FL→perm p , FL→perm q ] ≡_) commList | |
108 | 111 |
109 open AnyComm -- q₂ | 112 open AnyComm -- q₂ |
110 anyComm : (P Q : FList n) → AnyComm P Q | 113 anyComm : (P Q : FList n) → AnyComm FL0 FL0 P Q |
111 anyComm [] [] = record { commList = [] ; commAny = λ _ _ () } | 114 anyComm [] [] = record { commList = [] ; commAny = λ _ _ () } |
112 anyComm [] (cons q Q qr) = record { commList = [] ; commAny = λ _ _ () } | 115 anyComm [] (cons q Q qr) = record { commList = [] ; commAny = λ _ _ () } |
113 anyComm (cons p P pr) [] = record { commList = [] ; commAny = λ _ _ _ () } | 116 anyComm (cons p P pr) [] = record { commList = [] ; commAny = λ _ _ _ () } |
114 anyComm (cons p P pr) (cons q Q qr) = anyc0n (cons q Q qr) where | 117 anyComm (cons p P pr) (cons q Q qr) = anyc0n (cons q Q qr) where |
115 anyc0n : (Q1 : FList n) → AnyComm (cons p P pr) (cons q Q qr) | 118 anyc0n : (Q1 : FList n) → AnyComm {!!} {!!} (cons p P pr) (cons q Q qr) |
116 anyc0n [] = record { commList = FLinsert (perm→FL [ FL→perm p , FL→perm q ]) (commList (anyComm P (cons q Q qr))) ; commAny = anyc03 } where | 119 anyc0n [] = record { commList = FLinsert (perm→FL [ FL→perm p , FL→perm q ]) (commList (anyComm P (cons q Q qr))) ; commAny = anyc03 } where |
117 anyc03 : (p₁ q₁ : FL n) → | 120 anyc03 : (p₁ q₁ : FL n) → |
118 Any ( p₁ ≡_) (cons p P pr) → Any (q₁ ≡_) (cons q Q qr) | 121 Any ( p₁ ≡_) (cons p P pr) → Any (q₁ ≡_) (cons q Q qr) |
122 → {!!} → {!!} | |
119 → Any ((perm→FL [ FL→perm p₁ , FL→perm q₁ ]) ≡_) (FLinsert (perm→FL [ FL→perm p , FL→perm q ]) (commList (anyComm P (cons q Q qr)))) | 123 → Any ((perm→FL [ FL→perm p₁ , FL→perm q₁ ]) ≡_) (FLinsert (perm→FL [ FL→perm p , FL→perm q ]) (commList (anyComm P (cons q Q qr)))) |
120 anyc03 p₁ q₁ (there anyp) (here x) = insAny _ (commAny (anyComm P (cons q Q qr)) p₁ q₁ anyp (here x)) | 124 anyc03 p₁ q₁ (there anyp) (here x) _ _ = insAny _ (commAny (anyComm P (cons q Q qr)) p₁ q₁ anyp (here x) {!!} {!!} ) |
121 anyc03 p₁ q₁ (there anyp) (there anyq) = insAny _ (commAny (anyComm P (cons q Q qr)) p₁ q₁ anyp (there anyq)) | 125 anyc03 p₁ q₁ (there anyp) (there anyq) _ _ = insAny _ (commAny (anyComm P (cons q Q qr)) p₁ q₁ anyp (there anyq) {!!} {!!} ) |
122 anyc03 p₁ q₁ (here refl) (there anyq) = insAny _ (commAny (anyComm P (cons q Q qr)) p₁ q₁ (here refl) (there anyq)) | 126 anyc03 p₁ q₁ (here refl) (there anyq) _ _ = insAny _ (commAny (anyComm P (cons q Q qr)) p₁ q₁ {!!} (there anyq) {!!} {!!} ) |
123 anyc03 p₁ q₁ (here refl) (here x) = {!!} | 127 anyc03 p₁ q₁ (here refl) (here x) _ _ = {!!} |
124 anyc0n (cons q₂ Q1 qr₂ ) = record { commList = FLinsert (perm→FL [ FL→perm p , FL→perm q₂ ]) (commList (anyc0n Q1)) | 128 anyc0n (cons q₂ Q1 qr₂ ) = record { commList = FLinsert (perm→FL [ FL→perm p , FL→perm q₂ ]) (commList (anyc0n Q1)) |
125 ; commAny = anyc01 Q1 q₂ qr₂ } where | 129 ; commAny = anyc01 Q1 q₂ qr₂ } where |
126 anyc01 : (Q1 : FList n) (q₂ : FL n) → (qr₂ : fresh (FL n) ⌊ _f<?_ ⌋ q₂ Q1 ) → (p₁ q₁ : FL n) → Any (p₁ ≡_) (cons p P pr) → Any (q₁ ≡_) (cons q Q qr) → | 130 anyc01 : (Q1 : FList n) (q₂ : FL n) → (qr₂ : fresh (FL n) ⌊ _f<?_ ⌋ q₂ Q1 ) → (p₁ q₁ : FL n) → Any (p₁ ≡_) (cons p P pr) → Any (q₁ ≡_) (cons q Q qr) |
127 Any (perm→FL [ FL→perm p₁ , FL→perm q₁ ] ≡_) (FLinsert (perm→FL [ FL→perm p , FL→perm q₂ ]) (commList (anyc0n Q1)) ) | 131 → {!!} → {!!} |
128 anyc01 Q1 q₂ qr₂ p₁ q₁ (here refl) (there anyq) = insAny _ (commAny (anyc0n Q1) p₁ q₁ (here refl) (there anyq)) | 132 → Any (perm→FL [ FL→perm p₁ , FL→perm q₁ ] ≡_) (FLinsert (perm→FL [ FL→perm p , FL→perm q₂ ]) (commList (anyc0n Q1)) ) |
129 anyc01 Q1 q₂ qr₂ p₁ q₁ (there anyp) (here refl) = insAny _ (commAny (anyc0n Q1) p₁ q₁ (there anyp) (here refl)) | 133 anyc01 Q1 q₂ qr₂ p₁ q₁ (here refl) (there anyq) _ _ = insAny _ (commAny (anyc0n Q1) p₁ q₁ (here refl) (there anyq) {!!} {!!} ) |
130 anyc01 Q1 q₂ qr₂ p₁ q₁ (there anyp) (there anyq) = insAny _ (commAny (anyc0n Q1) p₁ q₁ (there anyp) (there anyq) ) | 134 anyc01 Q1 q₂ qr₂ p₁ q₁ (there anyp) (here refl) _ _ = insAny _ (commAny (anyc0n Q1) p₁ q₁ (there anyp) (here refl) {!!} {!!} ) |
131 anyc01 Q1 q₂ qr₂ p₁ q₁ (here refl) (here refl) with x∈FLins (perm→FL [ FL→perm p , FL→perm q₂ ]) (commList (anyc0n Q1)) | 135 anyc01 Q1 q₂ qr₂ p₁ q₁ (there anyp) (there anyq) _ _ = insAny _ (commAny (anyc0n Q1) p₁ q₁ (there anyp) (there anyq) {!!} {!!} ) |
136 anyc01 Q1 q₂ qr₂ p₁ q₁ (here refl) (here refl) _ _ with x∈FLins (perm→FL [ FL→perm p , FL→perm q₂ ]) (commList (anyc0n Q1)) | |
132 ... | t = {!!} -- t : p₁ q₂ → p₁ q₁ | 137 ... | t = {!!} -- t : p₁ q₂ → p₁ q₁ |
133 | 138 |
134 -- {-# TERMINATING #-} | 139 -- {-# TERMINATING #-} |
135 CommStage→ : (i : ℕ) → (x : Permutation n n ) → deriving i x → Any (perm→FL x ≡_) ( CommFListN i ) | 140 CommStage→ : (i : ℕ) → (x : Permutation n n ) → deriving i x → Any (perm→FL x ≡_) ( CommFListN i ) |
136 CommStage→ zero x (Level.lift tt) = AnyFList (perm→FL x) | 141 CommStage→ zero x (Level.lift tt) = AnyFList (perm→FL x) |