annotate src/Gutil.agda @ 328:e9de2bfef88d

fix done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 23 Sep 2023 22:43:47 +0900
parents fff18d4a063b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
318
fff18d4a063b use stdlib-2.0 and safe-mode
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 279
diff changeset
1 {-# OPTIONS --cubical-compatible --safe #-}
fff18d4a063b use stdlib-2.0 and safe-mode
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 279
diff changeset
2
0
dc677bac3c54 Permutation group
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 open import Level hiding ( suc ; zero )
dc677bac3c54 Permutation group
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 open import Algebra
14
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
5 module Gutil {n m : Level} (G : Group n m ) where
0
dc677bac3c54 Permutation group
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
4
121213cfc85a add Solvable
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
7 open import Data.Unit
121213cfc85a add Solvable
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
8 open import Function.Inverse as Inverse using (_↔_; Inverse; _InverseOf_)
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
9 open import Function
7
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 6
diff changeset
10 open import Data.Nat hiding (_⊔_) -- using (ℕ; suc; zero)
4
121213cfc85a add Solvable
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
11 open import Relation.Nullary
121213cfc85a add Solvable
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
12 open import Data.Empty
5
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
13 open import Data.Product
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
14 open import Relation.Binary.PropositionalEquality hiding ( [_] )
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 4
diff changeset
15
0
dc677bac3c54 Permutation group
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
4
121213cfc85a add Solvable
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 3
diff changeset
17 open Group G
0
dc677bac3c54 Permutation group
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
19 import Relation.Binary.Reasoning.Setoid as EqReasoning
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
20
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
21 gsym = Algebra.Group.sym G
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
22 grefl = Algebra.Group.refl G
11
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
23 gtrans = Algebra.Group.trans G
8
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
24
279
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
25 ε≈ε⁻¹ : ε ≈ ε ⁻¹
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
26 ε≈ε⁻¹ = begin
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
27 ε ≈⟨ gsym (proj₁ inverse _) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
28 ε ⁻¹ ∙ ε ≈⟨ proj₂ identity _ ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
29 ε ⁻¹
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
30 ∎ where open EqReasoning (Algebra.Group.setoid G)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
31
279
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
32 f⁻¹⁻¹≈f : {f : Carrier } → ( f ⁻¹ ) ⁻¹ ≈ f
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
33 f⁻¹⁻¹≈f {f} = begin
8
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
34 ( f ⁻¹ ) ⁻¹ ≈⟨ gsym ( proj₁ identity _) ⟩
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
35 ε ∙ ( f ⁻¹ ) ⁻¹ ≈⟨ ∙-cong (gsym ( proj₂ inverse _ )) grefl ⟩
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
36 (f ∙ f ⁻¹ ) ∙ ( f ⁻¹ ) ⁻¹ ≈⟨ assoc _ _ _ ⟩
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
37 f ∙ ( f ⁻¹ ∙ ( f ⁻¹ ) ⁻¹ ) ≈⟨ ∙-cong grefl (proj₂ inverse _) ⟩
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
38 f ∙ ε ≈⟨ proj₂ identity _ ⟩
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
39 f
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
40 ∎ where open EqReasoning (Algebra.Group.setoid G)
6
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
41
11
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
42 ≡→≈ : {f g : Carrier } → f ≡ g → f ≈ g
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
43 ≡→≈ refl = grefl
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
44
279
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
45 car : {f g h : Carrier } → f ≈ g → f ∙ h ≈ g ∙ h
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
46 car f=g = ∙-cong f=g grefl
15
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
47
279
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
48 cdr : {f g h : Carrier } → f ≈ g → h ∙ f ≈ h ∙ g
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
49 cdr f=g = ∙-cong grefl f=g
15
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
50
279
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
51 -- module _ where
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
52 -- open EqReasoning (Algebra.Group.setoid G)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
53 -- _≈⟨⟩_ : (a : Carrier ) → {b : Carrier} → a IsRelatedTo b → a IsRelatedTo b
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
54 -- _ ≈⟨⟩ a = a
15
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
55
279
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
56 open import Tactic.MonoidSolver using (solve; solve-macro)
15
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
57
8
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
58 lemma5 : (f g : Carrier ) → g ⁻¹ ∙ f ⁻¹ ≈ (f ∙ g) ⁻¹
4e275f918e63 deriving-inv done
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
59 lemma5 f g = begin
12
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
60 g ⁻¹ ∙ f ⁻¹ ≈⟨ gsym (proj₂ identity _) ⟩
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
61 g ⁻¹ ∙ f ⁻¹ ∙ ε ≈⟨ gsym (∙-cong grefl (proj₂ inverse _ )) ⟩
271
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
62 g ⁻¹ ∙ f ⁻¹ ∙ ( (f ∙ g) ∙ (f ∙ g) ⁻¹ ) ≈⟨ solve monoid ⟩
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
63 g ⁻¹ ∙ ((f ⁻¹ ∙ f) ∙ (g ∙ ((f ∙ g) ⁻¹ ∙ ε))) ≈⟨ ∙-cong grefl (gtrans (∙-cong (proj₁ inverse _ ) grefl) (proj₁ identity _)) ⟩
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
64 g ⁻¹ ∙ (g ∙ ((f ∙ g) ⁻¹ ∙ ε)) ≈⟨ solve monoid ⟩
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
65 (g ⁻¹ ∙ g ) ∙ ((f ∙ g) ⁻¹ ∙ ε) ≈⟨ gtrans (∙-cong (proj₁ inverse _ ) grefl) (proj₁ identity _) ⟩
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
66 (f ∙ g) ⁻¹ ∙ ε ≈⟨ solve monoid ⟩
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
67 (f ∙ g) ⁻¹
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
68 ∎ where open EqReasoning (Algebra.Group.setoid G)
c209aebeab2a Fundamental again
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 255
diff changeset
69
279
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 271
diff changeset
70