Mercurial > hg > Members > kono > Proof > galois
changeset 37:32db08b3c1a3
emumelation done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 20 Aug 2020 00:26:38 +0900 |
parents | ee56e29a903c |
children | bc289ffd0896 |
files | Symmetric.agda |
diffstat | 1 files changed, 32 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/Symmetric.agda Wed Aug 19 23:31:48 2020 +0900 +++ b/Symmetric.agda Thu Aug 20 00:26:38 2020 +0900 @@ -3,7 +3,7 @@ open import Level hiding ( suc ; zero ) open import Algebra open import Algebra.Structures -open import Data.Fin hiding ( _<_ ; _≤_ ; _-_ ) +open import Data.Fin hiding ( _<_ ; _≤_ ; _-_ ; _+_ ) open import Data.Fin.Properties hiding ( <-cmp ; <-trans ; ≤-trans ) open import Data.Product open import Data.Fin.Permutation @@ -135,8 +135,35 @@ eperm : {n m : ℕ} → m < n → Permutation n n → Permutation (suc n) (suc n) eperm {zero} () eperm {n} {0} (s≤s z≤n) perm = pprep perm -eperm {n} {suc m} (s≤s m<n) perm = eperm1 m 2 (s≤s (s≤s (z≤n))) (pswap {0} pid ) (pprep perm) where - eperm1 : (m i : ℕ ) → i ≤ suc (suc m) → Permutation i i → Permutation (suc n)(suc n)→ Permutation (suc n)(suc n) - eperm1 zero i i<ssm sw perm = perm ∘ₚ ( pfill {!!} sw ) -- i ≤ suc (suc n) - eperm1 (suc m) i i<ssm sw perm = eperm1 m (suc i) {!!} (pprep sw) perm +eperm {n} {suc m} (s≤s m<n) perm = eperm1 m 2 lemm3 (pswap {0} pid ) (pprep perm) where + lemm3 : 2 + m ≤ suc n + lemm3 = ≤-trans (s≤s m<n) refl-≤s + eperm1 : (m i : ℕ ) → i + m ≤ suc n → Permutation i i → Permutation (suc n)(suc n)→ Permutation (suc n)(suc n) + eperm1 zero i i<ssm sw perm = perm ∘ₚ ( pfill (subst (λ k → k ≤ suc n) (+-comm i _) i<ssm) sw ) -- i + zero ≤ suc (suc n) → i ≤ suc (suc n) + eperm1 (suc m) i i<ssm sw perm = eperm1 m (suc i) (lemm4 i<ssm ) (pprep sw) perm where + lemm4 : i + suc m ≤ suc n → suc i + m ≤ suc n + lemm4 lt = begin + suc i + m ≡⟨ cong (λ k → suc k ) ( +-comm i _ ) ⟩ + suc m + i ≡⟨ +-comm (suc m) _ ⟩ + i + suc m ≤⟨ lt ⟩ + suc n + ∎ where open ≤-Reasoning + +finpid : (n i : ℕ ) → i < n → List (Fin n) +finpid (suc n) zero _ = fromℕ≤ {zero} (s≤s z≤n) ∷ [] +finpid (suc n) (suc i) (s≤s lt) = fromℕ≤ (s≤s lt) ∷ finpid (suc n) i (<-trans lt a<sa) + +fpid : (n : ℕ ) → List (Fin n) +fpid 0 = [] +fpid (suc j) = finpid (suc j) j a<sa where + +plist : {n : ℕ} → Permutation n n → List ℕ +plist {0} perm = [] +plist {suc j} perm = plist1 j a<sa where + n = suc j + plist1 : (i : ℕ ) → i < n → List ℕ + plist1 zero _ = toℕ ( perm ⟨$⟩ˡ (fromℕ≤ {zero} (s≤s z≤n))) ∷ [] + plist1 (suc i) (s≤s lt) = toℕ ( perm ⟨$⟩ˡ (fromℕ≤ (s≤s lt))) ∷ plist1 i (<-trans lt a<sa) + +test = eperm {3} ( s≤s ( s≤s z≤n )) ( eperm (s≤s z≤n) pid )