é åºéåããããåã¨ã¿ãªããå ´åã®åè«çéä¼´ç³»ãã¬ãã¢æ¥ç¶ãGalois connectionãã¨å¼ã³ã¾ããã¬ãã¢æ¥ç¶ã主é¡çã«æ±ã£ãéå»è¨äºã«æ¬¡ãããã¾ãã
ä¸è¬çãªéä¼´ç³»ãé¢æã®éä¼´ãã¢ãããã¯ãã«ç©ºéã®å対ãã¢ãã¬ãã¢æ¥ç¶ã®ä¸è ãæ¯è¼ãã¦æ±ã£ã¦ããè¨äºã¨ãã¦ï¼
ãããã®è¨äºã§ã¯åºãã¦ãªãã£ããã¬ãã¢æ¥ç¶ã®ç°¡åãªä¾ãæãã¾ããç°¡åãªäºä¾ãåå³ãããã¨ã¯ãç解ã®å©ãã«ãªãã¨æãã¾ãã
å 容ï¼
- é åºéåã¨å
- ãã¼ã
- ã¬ãã¢æ¥ç¶ãã¢
- ãã§ããã§ã
- ã¸ã§ã¤ã³ã¨éä¼´ããªãª
é åºéåã¨å
é åºéåã®è¨è使ãã¨åè«ã®è¨è使ãã®å¯¾å¿ï¼ç¿»è¨³ã®æå¼ãï¼ã¯æ¬¡ã®ããã§ãã
é åºéå A | å A |
è¦ç´ a | 対象 a |
é¢ä¿ aâ¦b | å° aâb |
é¢ä¿ aâ¦a ï¼åå°æ§ï¼ | æçå° ida |
é¢ä¿ã®æ¨ç§» | å°ã®çµå |
å調åå f:AâB | é¢æ f:AâB |
é¢ä¿ fâ¦g :AâB | èªç¶å¤æ fâg:AâB |
é åºéåã®å Ord | åã®å Cat |
Aãé åºéåãa, bâA ã¨ãã¦ãåã®ãã ã»ããã«ç¸å½ããéåã A(a, b) ã¨æ¸ãã¾ãã
- aâ¦b ã®ã¨ããA(a, b) = {(a, b)}ï¼åå éåï¼
- ããã§ãªãã¨ããA(a, b) = 空éå
é åºéåï¼ã§ããåï¼ã§ã¯ã2ã¤ã®å¯¾è±¡ãçµã¶å°ã¯ãå¤ãã¨ã1æ¬ã§ãã
ãã¼ã
Aãé åºéåãa, bâA ã¨ãã¦ãaâ§b ã¯ãaã¨bã®å°ããã»ãï¼æ£ç¢ºã«ã¯ã大ãããªãã»ãï¼ã表ãã¾ããaâ§b ããaã¨bã®ãã¼ããmeetãã¨å¼ã³ã¾ããåæ㪠a, b ã«å¯¾ãã¦ãã¼ããåå¨ãããã¨ã¯ä¿è¨¼ããã¾ãããä¾ãã°ãé¢æ£é åºéåã§ã¯ãèªåã¨ã®ãã¼ã aâ§a 以å¤ã®ãã¼ãã¯åå¨ãã¾ããã
ããã°ã©ãã³ã°è¨èªHaskellã®è¨æ³ãåãã¦ãä¸ç½®æ¼ç®åè¨å·'â§'ã§æ¸ãããååã'(â§)'ã§è¡¨ãã¾ããåå (â§):AÃAâA ã¯ä¸è¬ã«ã¯å®ç¾©ã§ãã¾ãããé¨ååå (â§):AÃAââA ãªãå®ç¾©ã§ãã¾ãã
é¨åååï¼é¨åäºé æ¼ç®ï¼ (â§):AÃAââA ã¯ãå®ç¾©ããã¦ããç¯å²å ã«ããã¦ãå¯æãã¤çµåçã§ãã
- aâ§b = bâ§a
- (aâ§b)â§c = aâ§(bâ§c)
ãããæ大å ï¼1ã¨æ¸ãï¼ãããã°ãæ大å ããã¼ãæ¼ç®ã®åä½å ã«ãªãã¾ãã
- aâ§1 = 1â§a = a
ã¬ãã¢æ¥ç¶ãã¢
Aã¯é åºéåã§ããã¼ã (â§):AÃAâA ã¯å ¨åã§å®ç¾©ããã¦ããã¨ãã¾ããèªç¶æ°ã®å¤§å°é åºãèªç¶æ°ã®ç´æ°ã»åæ°é åºãããéåã®å å«é åºãªã©ã¯ãå ¨åçãã¼ããæã¤é åºã®ä¾ã§ããAãé åºéåãªããç´ç© AÃA ãé åºéåã«ãªãã¾ããB := AÃA ã¨ç½®ãã¾ãã
f:AâB, g:BâA ã次ã®ããã«å®ç¾©ãã¾ãã
- For aâA, f(a) := (a,a) âB
- For b = (b1, b2)âB, g(b) := b1â§b2 âA
f, g ãå調ã§ããã¨ã¯ã次ãæç«ãããã¨ã§ããï¼'Forall'ã¯ãè«çè¨å·'â'ã¨åãæå³ã§ããï¼
- Forall a, a'âA
aâ¦a' â f(a)â¦f(a') - Forall b, b'âA
bâ¦b' â g(b)â¦g(b')
ããã¯ãç´ç©é åºã®å®ç¾©ã¨ãã¼ãã®å®ç¾©ããããåããã§ãããã
fã¨gãã¬ãã¢æ¥ç¶ãã¢ãGalois-connection pairãã§ããã¨ã¯ãåè«ã®è¨èã§è¨ãã°ãfã¨gãéä¼´é¢æãã¢ã§ãããã¨ã§ãã次ã®ãéåã®ååãè¦æ±ããã¾ãã
- Forall aâA, bâB
A(a, g(b))B(f(a), b)
ãã®ãã ã»ããååããé åºâ¦ã使ã£ã¦æ¸ãã°ï¼
- Forall aâA, bâB
aâ¦g(b) â f(a)â¦b
fã¨gãå®ç¾©ã«ãããã£ã¦å±éããã¨ï¼
- Forall aâA, b = (b1, b2) âB
aâ¦(b1â§b2) â (a, a)â¦(b1, b2)
ããã«åãããããæ¸ãã°ï¼
- Forall a, b1, b2âA
aâ¦(b1â§b2) â (aâ¦b1 ã㤠aâ¦b2) - Forall a, b1, b2âA
(aâ¦b1 ã㤠aâ¦b2) â aâ¦(b1â§b2)
ããã¾ã§æ¥ãã°ãå½é¡ã®æç«ã¯æããã§ãããã
ãã§ããã§ã
åç¯ã®ãããªãã ã»ããååã«ãã£ã¦éä¼´é¢æãã¢ï¼é åºéåã®ã¨ãã¯ã¬ãã¢æ¥ç¶ãã¢ï¼ãå®ç¾©ããã¾ããé åºéåã«é¢ããéä¼´é¢æãã¢ãããªãã¡ã¬ãã¢æ¥ç¶ãã¢ã®å ´åã¯ãããã§ååã§ãããä¸è¬çã«ã¯ãåã«ãååãããã¾ãããã§ã¯ãã¡ã§ãããã ã»ããã¯ããããããã®ã§ããã ã»ããéã®ååãããããããã¾ãããããã®ååéã系統çã«é£åãã¦ããå¿ è¦ãããã¾ãããã®ãã¨ã«ã¤ãã¦ã¯ã次ã®éå»è¨äºï¼ã®ä¸é¨ï¼ã§è¨è¿°ãã¦ãã¾ãã
- åè«ã®éä¼´ãã¡ããã¨æããã // 転置ã¨å転置
- åè«ã®éä¼´ãã¡ããã¨æãããï¼ ãçµµæãå®å ¨è§£èª¬ // 転置ã¨å転置ã®èªç¶æ§
ååéã®ç³»çµ±çãªé£åæ§ï¼è»¢ç½®ã¨å転置ã®èªç¶æ§ï¼ã¾ã§èããã¨ããã ã»ããååã«ããéä¼´ãã¢ã®å®ç¾©ã¯åç´ã ã¨ã¯è¨ãã¾ããï¼ä¸è¨ã®è¨äºã®å 容ãé¢åãããã§ããï¼ããã£ã¨åç´ã§ã¯ãªã¢ã§çå¼çãªå®ç¾©ã¨ãã¦ãã§ããã§ãçå¼ã{snake | zigzag | zig-zag | triangle | triangular} {equation | identity | relation}ãã«ããå®ç¾©ãããã¾ãã
ãã§ããã§ãçå¼ã¯ãåä½ãunitãã¨ä½åä½ãcounitãã«é¢ããçå¼ãªã®ã§ãã¾ãã¯åä½ã¨ä½åä½ãå®ç¾©ããå¿ è¦ãããã¾ããä»ã®äºä¾ã«é¢ãã¦è¨ãã°ãåä½ï¼ä½åä½ã表ç¾ããä¸çå¼ã¯æ¬¡ã®ããã«ãªãã¾ãã
- åä½ä¸çå¼ï¼ Forall aâA, aâ¦aâ§a
- ä½åä½ä¸çå¼ï¼ Forall b = (b1, b2) âB, (b1â§b2, b1â§b2)â¦b
åä½ä¸çå¼ï¼ä½åä½ä¸çå¼ã«é¢ãã¦ã®ä¸è¬çèæ¯ã¯ãé åºéä¼´æ§ï¼ ã¬ãã¢æ¥ç¶ã®åè«ããè¦ã¦ãã ããã
ã¬ãã¢æ¥ç¶ã¨ã¯éããã«ä¸è¬çãªéä¼´ç³»ã«ããã¦ãåä½ã¨ä½åä½ã«é¢ãããã§ããã§ãçå¼ï¼çå¼ã¯2ã¤ï¼ãæç«ããã°ããã ã»ããååã¯åºã¦ãã¾ãããã§ããã§ãæ¹å¼ã®ã¡ãªããã¯ããã ã»ãããå®ç¾©ãã«ããç¶æ³ã§ãããã ã»ããã«è¨åããã«éä¼´ç³»ãå®ç¾©ã§ãããã¨ã§ããä¾ãã°ããã¯ãã«ç©ºéã®å対æ§ããã§ããã§ãæ¹å¼ã§å®ç¾©ã§ãã¾ãã
ãã§ããã§ãæ¹å¼ã«ããéä¼´ç³»ã®å®ç¾©ã¯æ¬¡ã®è¨äºã§æ±ã£ã¦ãã¾ãã
- å対ã¨ãã§ããã§ã
- ã«ãã³ã¤ã¤ãã©ä½¿ããç·å½¢ä»£æ°ã¨ã¯ï¼ // ãã§ããã§ãç·å½¢ä»£æ°
- ã¢ãã¤ãéåï¼ ã«ãªã¼åãããã§ããã§ãã¾ã§
ã¾ããã¬ãã¢æ¥ç¶ã¨ã¯éããªãä¸è¬çãªéä¼´ç³»ã«é¢ãã注æäºé ã¯æ¬¡ãè¦ã¦ãã ããã
ã¸ã§ã¤ã³ã¨éä¼´ããªãª
a, bâA ã«å¯¾ãã¦ãaâ¨b := (aã¨bã®å¤§ããã»ã) ã¨å®ç¾©ãã¦ãaã¨bã®ã¸ã§ã¤ã³ãjoinãã¨å¼ã³ã¾ã*1ããã¼ãã®ã¨ãã¨åãè°è«ãã¸ã§ã¤ã³ã«å¯¾ãã¦ãè¡ãã¾ããè¨å·ã®ä½¿ãæ¹ã¯åãã ã¨ãã¦ãh:BâA ã次ã®ããã«å®ç¾©ãã¾ãã
- For b = (b1, b2) âB, h(b) := b1â¨b2
ãã¼ãã®å ´åã¨åæ§ã«ã次ã®å½é¡ã確èªã§ãã¾ãã
- Forall aâA, bâB
A(h(b), a)B(b, f(a))
- Forall aâA, bâB
h(b)â¦a â bâ¦f(a) - åä½ä¸çå¼ï¼ Forall aâA, aâ¨aâ¦a
- ä½åä½ä¸çå¼ï¼ Forall b = (b1, b2) âB, bâ¦(b1â¨b2, b1â¨b2)
ããã¯ãhã¨fãã¬ãã¢æ¥ç¶ãã¢ã§ãããã¨ã示ãã¾ããããããfã¨gã®ãã¢ã¨hã¨fã®ãã¢ã§ã¯ãä¸çå·ã®åããé転ããã®ã§ã次ã®ãããªæ¸ãæ¹ããã¾ãã
- f -| g â fã¯gã®å·¦ãã¼ããã¼ â gã¯fã®å³ãã¼ããã¼
- h -| f â hã¯fã®å·¦ãã¼ããã¼ â fã¯hã®å³ãã¼ããã¼
ä»ã®ç¶æ³ãã¾ã¨ãã¦æ¸ãã¨ï¼
- h -| f -| g
3ã¤ã®å調ååï¼åè«ã§è¨ãã°é¢æï¼ã2ã¤ãã¤ãã¢ã«ãªã£ã¦ããªãªãå½¢æãã¦ãã¾ããã¤ã¾ãããã¯ãã¬ãã¢æ¥ç¶ããªãªã§ããéä¼´ç³»ã®ä¸è¬è«ã§ã¯ï¼é¢æã®ï¼éä¼´ããªãªãadjoint {trio | triple}ãã¨ããã¾ãã
éä¼´ããªãªã®ä»ã®ä¾ã«ã¯ï¼
- è«çã«ããã â -| Ï* -| â
- éåéã®ç´ç©ã¨ç´åã«ããã Σ -| Î -| Î
- å 群層ã«ããã f! -| f-1 -| fï¼
*1:é¢ä¿ãã¼ã¿ãã¼ã¹ç¨èªã®ã¸ã§ã¤ã³ããã¼ãã«ç¸å½ããã¦ããªã³ãã¸ã§ã¤ã³ãç¸å½ãã¾ããé åºæ§é ã®ã¸ã§ã¤ã³ãã¦ããªã³ã¨å¼ã¶ãã¨ãããã¾ãã