è¨å·ç表ç¾ãè¦ãã¨ããååãã¬ã¼ãã³ã°ããã人ã¯ãå¨å²ã®æèããæ§ã ãªâå¿åº¦âããã¦ãè¨å·ç表ç¾ã解éãã¾ãããè¡éãèªããã¨è¨ã£ã¦ãããã§ãããã
ã½ããã¦ã§ã¢ã«ãã£ã¦ãå¿åº¦ããï¼è¡éãèªããè¡çºãå®è£
ãããã¨ã¯ã¨ã¦ã大å¤ã§ããã½ããã¦ã§ã¢ã«ã¨ã£ã¦å¤§å¤ãªãã¨ã¯äººéã«ã¨ã£ã¦ã大å¤ãªãã¨ãå¤ããå®éã人éããå¿åº¦ããï¼è¡éãèªãããã¨ãåºæ¥ãããã«ãªãã«ã¯ãããªãã®ãã¬ã¼ãã³ã°ãå¿
è¦ã§ãã$`\newcommand{\mrm}[1]{ \mathrm{#1} }
\newcommand{\mbf}[1]{\mathbf{#1}}
%\newcommand{\cat}[1]{\mathcal{#1}}
\newcommand{\hyp}{\text{ï¼} }
%\newcommand{\id}{ \mathrm{id} }
\newcommand{\In}{ \text{ in } }
\newcommand{\True}{\mathrm{True}}
\newcommand{\False}{\mathrm{False}}
`$
ã³ã¢ã¼ã¸ã§ã³ãcoercion | å¼·å¶ãã¨ã¯ããå¿åº¦ããï¼è¡éãèªããè¡çºã®ä¸ç¨®ã§ãæèããå¯ãã¦å½è©²ã®è¨å·ç表ç¾ã®âåâã決å®ãããå¼·å¶ããããã¨ã§ããããã§ãâåâã¯åºãæå³ã§ä½¿ã£ã¦ãããå¤ã®ç¨®å¥ã®ã¿ãªãããæ§é ã®ç¨®å¥ã¨ãã£ãæå³ãæã¡ã¾ãã
ãã¼ã«åã¨èªç¶æ°å
ãã¼ã«å¤ã¨ã¯ãå¤å ¸è«çã®äºå¤çå½å¤ã®ãã¨ã§ã$`\True`$ ã¾ã㯠$`\False`$ ã®ãã¨ã§ããSets-as-Typesãéåãåã ãã®ç«å ´ãªãããã¼ã«åã¨ã¯ãã¼ã«å¤ã®éåã®ãã¨ã§ãã
$`\quad \mbf{B} := \{\True, \False\}`$ ï¼äºå éåï¼
åæ§ã«ãèªç¶æ°åã¨ã¯èªç¶æ°ã®éåã®ãã¨ã§ãã
$`\quad \mbf{N} := \{0, 1, 2, \cdots\}`$ ï¼ç¡ééåï¼
ãã¼ã«å¤ã® $`\True, \False`$ 㯠$`1, 0`$ ã¨æ¸ããã¨ãããã¾ãããããã£ã¦ã$`1`$ ã¨ããè¨å·ç表ç¾ãè¦ããããã¨ããããã¼ã«å¤ã® $`1`$ ãããèªç¶æ°ã® $`1`$ããã¯æèããå¯ãã¦å¤æããå¿ è¦ãããã¾ããå¤æã®çµæã次ã®ããã«æ¸ããã¨ã«ãã¾ãã
- $`(1 \text{ as boolean})`$ -- è¨å·çè¡¨ç¾ $`1`$ ã¯ããã¼ã«å¤ã¨ãã¦ã® $`1`$ã ã§ããã
- $`(1 \text{ as natural})`$ -- è¨å·çè¡¨ç¾ $`1`$ ã¯ãèªç¶æ°ã¨ãã¦ã® $`1`$ã ã§ããã
ãã®ããã«ãã¦åã決å®ãããã¨ãã³ã¢ã¼ã¸ã§ã³ã®ä¸ä¾ã§ãã
å®ã¯ãã£ã¨é«ã¬ãã«ãªâåâã決å®ããä½æ¥ãããã¾ãã$`1`$ ããã¼ã«å¤ãèªç¶æ°ãã決å®ããã®ã§ã¯ãªãã¦ã$`\mbf{B}`$ ã $`\mbf{N}`$ ã®âåâã決å®ããä½æ¥ã§ããéãªè¨ãæ¹ã§ããããåã®åã決å®ãããã¨è¨ã£ã¦ãããããç¥ãã¾ããã
è¨å·çè¡¨ç¾ $`\mbf{B}`$ ã¯äºå éåã表ããã¨è¨ãã¾ããããåãªãéåã§ã¯ãªãã¦é åºéåã表ãã¨ããããã¾ãã$`\mbf{B}`$ ã¨ããè¨å·ç表ç¾ãè¦ããããã¨ãããéåã® $`\mbf{B}`$ ãããé åºéåã® $`\mbf{B}`$ãããå¤æããå¿ è¦ãçãã¾ããå¤æã®çµæã次ã®ããã«æ¸ããã¨ã«ãã¾ãã
- $`(\mbf{B} \text{ as set})`$ -- è¨å·çè¡¨ç¾ $`\mbf{B}`$ ã¯ãéåã¨ãã¦ã® $`\mbf{B}`$ã ã§ããã
- $`(\mbf{B} \text{ as ordered set})`$ -- è¨å·çè¡¨ç¾ $`\mbf{B}`$ ã¯ãé åºéåã¨ãã¦ã® $`\mbf{B}`$ã ã§ããã
åè«ã®æ¦å¿µã¨è¨æ³ã使ããªãã°ï¼
- $`(\mbf{B} \text{ as set})`$ -- $`\mbf{B}\in |\mbf{Set}|`$ ã§ããã
- $`(\mbf{B} \text{ as ordered set})`$ -- $`\mbf{B}\in |\mbf{Ord}|`$ ã§ããã
æ示çã³ã¢ã¼ã¸ã§ã³
åç¯ã® $`(\mbf{B} \text{ as ordered set})`$ ã¯ãåã« $`\mbf{B}`$ ã ããè¦ããããã®ã ãã©ãèªãå´ãæèããå¿åº¦ã㦠$`\text{ as ordered set}`$ ã¨ãã解éãããç¶æ³ãæ³å®ãã¦ãã¾ããããããèªãå´ã§ã¯ãªãã¦ãæ¸ãå´ãæåãã $`(\mbf{B} \text{ as ordered set})`$ ã¨æ¸ãã°ã誤èªã»èª¤è§£ãé¿ãããã¾ããæ¸ãå´ã«ããã³ã¢ã¼ã¸ã§ã³ï¼âåâã®å¤æï¼ãæ示çã³ã¢ã¼ã¸ã§ã³ãexplicit coercionãã¨å¼ã¶ãã¨ã«ãã¾ããé常ã®ã³ã¢ã¼ã¸ã§ã³ã¯æ示çï¼æ¸ãã¦ãªããã¨ãæ¨æ¸¬ãããï¼ã§ãã
ä¾ãã° $`\mbf{B}`$ ã¯ãåç®ä¸ã¯ãéåã ãã¨è¨ã£ã¦ãã¦ããå®éã«ã¯æ¬¡ã®ãããªæ§é ãåæãã¦ãããã¨ãããã¾ãã
- $`(\mbf{B} \text{ as ordered set})`$
- $`(\mbf{B} \text{ as join semilattice})`$
- $`(\mbf{B} \text{ as meet semilattice})`$
- $`(\mbf{B} \text{ as lattice})`$
- $`(\mbf{B} \text{ as complete lattice})`$
- $`(\mbf{B} \text{ as semiring})`$
- $`(\mbf{B} \text{ as ordered semiring})`$
- $`(\mbf{B} \text{ as Boolean algebra})`$
- $`(\mbf{B} \text{ as Heyting algebra})`$
- $`(\mbf{B} \text{ as small category})`$
- $`(\mbf{B} \text{ as small Cartesian closed category})`$
- â¥â¥
èªç¶æ°ã«é¢ãã¦ãåæ§ã§ãã
- $`(\mbf{N} \text{ as totally ordered set})`$ ï¼å¤§å°é åºï¼
- $`(\mbf{N} \text{ as ordered set})`$ ï¼ç´æ°ã»åæ°ã®é åºï¼
- $`(\mbf{N} \text{ as additive monoid})`$
- $`(\mbf{N} \text{ as multiplicative monoid})`$
- $`(\mbf{N} \text{ as semiring})`$
- $`(\mbf{N} \text{ as ordered semiring})`$
- $`(\mbf{N} \text{ as small category})`$
- $`(\mbf{N} \text{ as small monoidal category})`$
- $`(\mbf{N} \text{ as small symmetric monoidal category})`$
- â¥â¥
ãã¡ãããæ¯åæ¯å $`\text{as XXXX}`$ ãä»ããã®ã¯ç ©ééãã¾ãããè¦æè¦æã§ã¯æ示çã³ã¢ã¼ã¸ã§ã³ã使ã£ãã»ããããã ããã¨æãã¾ãã
æãåã£ã¦å¥ãªè¨å·ã«ãã
ãã§ã«ã¡ãï¼ãã¬ã³ã±ã«éåè«ï¼æ¨æºã®éåè«ï¼ã®ãã¤ãã³æµã®èªç¶æ°ã®å®ç¾©ã§ã¯ã
- $`0 := \emptyset`$
- $`1 := \{\emptyset\}`$
ã§ãããããã£ã¦ã次ã®ããã«æ¸ãã¾ãã
$`\quad \mbf{B} := \{\emptyset, \{\emptyset\}\} = \{\mbf{0}, \mbf{1}\}`$
ããã§ã$`\mbf{0}`$ ã¯ç©ºéåã®å¥ãªæ¸ãæ¹ã$`\mbf{1}`$ ã¯åå éåã®å¥ãªæ¸ãæ¹ã§ãã$`\mbf{B}`$ ã®è¦ç´ ã¯éåã§ãããã次ãæç«ãã¾ãã
$`\quad \mbf{B}\subseteq |\mbf{Set}|`$
空éå $`\mbf{0}`$ ã¨åå éå $`\mbf{1}`$ ã®ããã ã®ãã¹ã¦ã®ååãèããã¨ã$`\mbf{B}`$ ã¯éååã®é¨ååã«ãªãã¾ãã
$`\quad (\mbf{B}\text{ as category} ) \subseteq \mbf{Set}`$
ããã§ã® $`\subseteq `$ ã¯é¨åéåã§ã¯ãªãã¦é¨ååãæå³ãã¾ãã
èªç¶æ°ã®éåã«é¢ãã¦ãã次ã®è§£éãå¯è½ã§ãã
$`\quad (\mbf{N}\text{ as category} ) \subseteq \mbf{Set}`$
ãã¦ãéååã®é¨ååã¨ã¿ãªãã $`\mbf{B}`$ ã $`\mbf{N}`$ ããåãè¨å· $`\mbf{B},\mbf{N}`$ ã使ãç¶ãã¦ããã®ãï¼ ã¨çåãããã¾ããåã¯ãæ示çã³ã¢ã¼ã¸ã§ã³ã¨çµã¿åãããã°ãåãè¨å·ã§ãããããããªãããã¨èãã¦ããã®ã§ãããããæè¿ããã£ã±ãããã¡ãããªãã¨èããå¤ããã¾ããã
éååã®é¨ååã¨ã¿ãªãã¦ãæç¹ã§ãç¸å½ã«ã¡ã³ã¿ã«ã¢ãã«ã¯å¤ãã£ã¦ãã¾ããä¾ãã°ãç½æãé»æ¿æåã使ã£ã¦æ¬¡ã®ããã«æ¸ãã®ãããããã§ãã
$`\quad \mathbb{B} \subseteq \mbf{Set}\\
\quad \mathbb{N} \subseteq \mbf{Set}
`$
æå種ã»ãã©ã³ããéããããã®ã§ãé »ç¹ã«å¤ãããã¨ã¯åºæ¥ãªãã®ã§ãããæå³ãï¼å¿ççã«ã§ãï¼ç¸å½ã«éã£ã¦ãã¾ã£ãå ´åã¯ãæãåã£ã¦å¥ãªæå種ã»ãã©ã³ãããããã¯å¥ãªååã«ããã»ããããããç¥ãã¾ããã