Mercurial > hg > Members > kono > Proof > galois
changeset 324:42eeb9f299eb
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 23 Sep 2023 09:38:52 +0900 |
parents | 558c33f7f8e0 |
children | ba190266d4ee |
files | src/Putil.agda |
diffstat | 1 files changed, 38 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Putil.agda Fri Sep 22 08:22:56 2023 +0900 +++ b/src/Putil.agda Sat Sep 23 09:38:52 2023 +0900 @@ -442,6 +442,24 @@ pswap-dist1 (suc zero) = refl pswap-dist1 (suc (suc q)) = cong ( λ k → suc (suc k) ) refl +p11 : {n : ℕ } → (y : Fin (suc n)) → 0 < toℕ y → (y<n : Data.Nat.pred (toℕ y) < n) → suc (fromℕ< y<n) ≡ y +p11 {.(suc _)} zero () (s≤s z≤n) +p11 {suc n} (suc zero) 0<y (s≤s z≤n) = refl +p11 {suc n} (suc (suc y)) 0<y y<n = p13 where + p14 : toℕ (suc y) < suc n + p14 = y<n + sy<n : Data.Nat.pred (toℕ (suc y)) < n + sy<n = px≤py ( begin + suc (suc (toℕ y)) ≡⟨ refl ⟩ + suc (toℕ (suc y)) ≤⟨ p14 ⟩ + suc n ∎ ) where open ≤-Reasoning + p12 : suc (fromℕ< sy<n ) ≡ suc y + p12 = p11 (suc y) (s≤s z≤n) sy<n + p16 : fromℕ< y<n ≡ suc (fromℕ< sy<n) + p16 = lemma10 refl + p13 : suc (fromℕ< y<n) ≡ suc (suc y) + p13 = cong suc (trans p16 p12 ) + shlem→ : {n : ℕ} → (perm : Permutation (suc n) (suc n) ) → (p0=0 : perm ⟨$⟩ˡ (# 0) ≡ # 0 ) → (x : Fin (suc n) ) → perm ⟨$⟩ˡ x ≡ zero → x ≡ zero shlem→ perm p0=0 x px=0 = begin x ≡⟨ sym ( inverseʳ perm ) ⟩ @@ -498,25 +516,8 @@ p← x | tri≈ ¬a b ¬c = ⊥-elim (sh2 perm p0=0 b) p← x | tri> ¬a ¬b c = fromℕ< {Data.Nat.pred (toℕ (Inverse.from perm (suc x)))} (p01 x c) - p11 : {n : ℕ } → (y : Fin (suc n)) → 0 < toℕ y → (y<n : Data.Nat.pred (toℕ y) < n) → suc (fromℕ< y<n) ≡ y - p11 {.(suc _)} zero () (s≤s z≤n) - p11 {suc n} (suc zero) 0<y (s≤s z≤n) = refl - p11 {suc n} (suc (suc y)) 0<y y<n = p13 where - p14 : toℕ (suc y) < suc n - p14 = y<n - sy<n : Data.Nat.pred (toℕ (suc y)) < n - sy<n = px≤py ( begin - suc (suc (toℕ y)) ≡⟨ refl ⟩ - suc (toℕ (suc y)) ≤⟨ p14 ⟩ - suc n ∎ ) where open ≤-Reasoning - p12 : suc (fromℕ< sy<n ) ≡ suc y - p12 = p11 (suc y) (s≤s z≤n) sy<n - p16 : fromℕ< y<n ≡ suc (fromℕ< sy<n) - p16 = lemma10 refl - p13 : suc (fromℕ< y<n) ≡ suc (suc y) - p13 = cong suc (trans p16 p12 ) - -- using "with" something binded in ≡ is prohibited + -- with perm ⟨$⟩ʳ (suc q) in e generates w != Inverse.to perm (suc q) of type Fin (suc n) error piso← : (x : Fin n ) → p→ ( p← x ) ≡ x piso← x = p02 _ _ refl refl where p02 : (y z : Fin n) → p← x ≡ y → p→ y ≡ z → z ≡ x @@ -564,7 +565,24 @@ x ∎ shrink-iso : { n : ℕ } → {perm : Permutation n n} → shrink (pprep perm) refl =p= perm -shrink-iso {n} {perm} = record { peq = λ q → ? } +shrink-iso {n} {perm} = record { peq = λ q → s001 q } where + s001 : (x : Fin n) → shrink (pprep perm) refl ⟨$⟩ʳ x ≡ perm ⟨$⟩ʳ x + s001 zero with <-fcmp (suc (perm ⟨$⟩ʳ zero)) (# 0) + ... | tri> ¬a ¬b c = s002 where + s002 : fromℕ< (≤-trans fin<n (s≤s (Data.Nat.Properties.≤-reflexive refl))) ≡ perm ⟨$⟩ʳ zero + s002 = begin + fromℕ< (≤-trans fin<n (s≤s (Data.Nat.Properties.≤-reflexive refl))) ≡⟨ lemma10 refl ⟩ + fromℕ< fin<n ≡⟨ fromℕ<-toℕ (perm ⟨$⟩ʳ zero) fin<n ⟩ + perm ⟨$⟩ʳ zero ∎ where + open ≡-Reasoning + s001 (suc x) with <-fcmp (suc (perm ⟨$⟩ʳ (suc x))) (# 0) + ... | tri> ¬a ¬b c = s002 where + s002 : fromℕ< (≤-trans fin<n (s≤s (Data.Nat.Properties.≤-reflexive refl))) ≡ perm ⟨$⟩ʳ (suc x) + s002 = begin + fromℕ< (≤-trans fin<n (s≤s (Data.Nat.Properties.≤-reflexive refl))) ≡⟨ lemma10 refl ⟩ + fromℕ< fin<n ≡⟨ fromℕ<-toℕ (perm ⟨$⟩ʳ (suc x)) fin<n ⟩ + perm ⟨$⟩ʳ (suc x) ∎ where + open ≡-Reasoning shrink-iso2 : { n : ℕ } → {perm : Permutation (suc n) (suc n)} → (p=0 : perm ⟨$⟩ˡ (# 0) ≡ # 0) → pprep (shrink perm p=0) =p= perm @@ -578,10 +596,7 @@ perm ⟨$⟩ʳ zero ∎ where open ≡-Reasoning - s001 = ? - -- s001 (suc q) with perm ⟨$⟩ʳ (suc q) | inspect (_⟨$⟩ʳ_ perm ) (suc q) - -- ... | zero | record {eq = e} = ⊥-elim (sh1 perm p=0 {q} e) - -- ... | suc t | e = refl + s001 (suc q) = ? shrink-cong : { n : ℕ } → {x y : Permutation (suc n) (suc n)}