← venn-to-topos

Slide0512.tex

\documentclass[dvipdfmx,14pt,notheorems,aspectratio=169]{beamer}

\usepackage{array,booktabs}
\usepackage{amsmath,amssymb,mathtools,amsthm}
\usepackage{mathrsfs}
\usepackage{tikz}
\usepackage{graphicx}
\usetikzlibrary{positioning,arrows.meta,calc,shapes.geometric,fit,backgrounds}
\usepackage[utf8]{inputenc}
\usepackage{bxdpx-beamer}
\usepackage{pxjahyper}

\usetheme{Darmstadt}
\usecolortheme{seahorse}
\setbeamertemplate{navigation symbols}{}
\setbeamertemplate{items}[default]
\usefonttheme{professionalfonts}

\definecolor{toposblue}{RGB}{0,72,165}
\definecolor{toposorange}{RGB}{236,120,0}
\definecolor{toposgreen}{RGB}{0,130,90}
\definecolor{toposred}{RGB}{190,45,45}
\definecolor{lightblue}{RGB}{225,238,255}
\definecolor{lightorange}{RGB}{255,240,220}
\definecolor{lightgreen}{RGB}{225,248,238}
\definecolor{lightred}{RGB}{255,229,229}
\definecolor{slate}{RGB}{50,60,70}
\definecolor{paper}{RGB}{250,250,247}
\definecolor{ink}{RGB}{31,35,38}
\definecolor{muted}{RGB}{112,118,125}
\definecolor{line}{RGB}{214,216,218}
% Color grammar: green = logic, orange = geometry/space, blue = bridge/structure.
\colorlet{logic}{toposgreen}
\colorlet{spacec}{toposorange}
\colorlet{bridge}{toposblue}
\colorlet{danger}{toposred}
\colorlet{logicLight}{lightgreen}
\colorlet{spaceLight}{lightorange}
\colorlet{bridgeLight}{lightblue}
\colorlet{dangerLight}{lightred}

\setbeamercolor{title}{fg=bridge}
\setbeamercolor{frametitle}{fg=bridge}
\setbeamercolor{block title}{bg=bridge!15,fg=bridge}
\setbeamercolor{block body}{bg=bridge!5,fg=black}
\setbeamercolor{alerted text}{fg=toposred}

\newcommand{\Set}{\mathbf{Set}}
\newcommand{\BA}{\mathbf{Bool}}
\newcommand{\FinSet}{\mathbf{FinSet}}
\newcommand{\FinBool}{\mathbf{FinBool}}
\newcommand{\Sub}{\mathrm{Sub}}
\newcommand{\Clop}{\mathrm{Clop}}
\newcommand{\Stone}{\mathrm{Stone}}
\newcommand{\Hom}{\mathrm{Hom}}
\newcommand{\Sh}{\mathrm{Sh}}
\newcommand{\R}{\mathbb{R}}
\newcommand{\sem}[1]{[\![#1]\!]}
\newcommand{\true}{\mathsf{true}}
\newcommand{\false}{\mathsf{false}}
\newcommand{\key}[1]{\textcolor{logic}{\textbf{#1}}}
\newcommand{\shock}[1]{\textcolor{toposred}{\textbf{#1}}}
\newcommand{\geom}[1]{\textcolor{spacec}{\textbf{#1}}}
\newcommand{\vocab}[1]{\textbf{\textcolor{bridge}{#1}}}
\AtBeginEnvironment{frame}{\small}

\newcommand{\onemessage}[1]{%
  \vfill
  \begin{center}
    {\large\bfseries\color{bridge}#1}
  \end{center}
}

\tikzset{
  >={Latex[length=2.4mm,width=2.0mm]},
  world/.style={circle,draw=spacec,fill=spaceLight,very thick,minimum size=9mm,inner sep=0pt,font=\small\bfseries},
  worldbad/.style={circle,draw=danger,fill=dangerLight,very thick,minimum size=9mm,inner sep=0pt,font=\small\bfseries},
  worldgood/.style={circle,draw=bridge,fill=bridgeLight,very thick,minimum size=10mm,inner sep=0pt,font=\small\bfseries},
  logicbox/.style={rounded corners=2pt,draw=logic,fill=logicLight,very thick,inner sep=7pt,align=center},
  spacebox/.style={rounded corners=2pt,draw=spacec,fill=spaceLight,very thick,inner sep=7pt,align=center},
  bridgebox/.style={rounded corners=2pt,draw=bridge,fill=bridgeLight,very thick,inner sep=7pt,align=center},
  dangerbox/.style={rounded corners=2pt,draw=danger,fill=dangerLight,very thick,inner sep=7pt,align=center},
  tinylabel/.style={font=\scriptsize\color{muted},align=center},
  arrow/.style={->,very thick,draw=bridge},
  linearrow/.style={->,thick,draw=ink!70},
  dot/.style={circle,fill=ink,inner sep=1.8pt}
}

\title[ベン図からトポスへ]{ベン図からトポスへ}
\subtitle{}
\author{洞龍弥}
\institute[]{数理空間トポス 新歓 2026}
\date[2026年5月23日]{2026年5月23日}

\begin{document}

% 1
\begin{frame}[plain]
  \titlepage
\end{frame}

\section{ベン図}

% 2
\begin{frame}{オイラーの手紙}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \draw[fill=white,draw=line,very thick,rounded corners=2pt] (-5.1,-2.35) rectangle (-0.7,2.35);
  \node[inner sep=0pt] at (-2.9,-0.05)
    {\includegraphics[width=4.15cm]{euler_letters/euler_circle_detail.png}};

  \node[logicbox,minimum width=3.0cm] (p) at (1.5,1.25) {命題};
  \node[spacebox,minimum width=3.0cm] (r) at (4.9,1.25) {空間の領域};
  \draw[arrow] (p) -- (r);
  \node[font=\Large\bfseries\color{bridge}] at (3.2,0.22) {$P \longmapsto \sem{P}$};

  \node[bridgebox,align=left,text width=6.0cm] at (3.2,-1.05)
    {``represented by figures, so as to exhibit their nature to the eye''\\
    {\scriptsize Euler, \textit{Letters to a German Princess}, Letter CII}};
\end{tikzpicture}
\end{center}
\onemessage{空間と論理の対応は,とてもprimitiveである}
\end{frame}

% 3
\begin{frame}{嘘つきパズル Q}
\small
\begin{block}{問題}
  A, B, C のうち,ちょうど1人だけが嘘つき.
  \[
    A:\text{「Bが嘘つき」}\qquad
    B:\text{「Cが嘘つき」}\qquad
    C:\text{「Aは正直者」}
\]
\end{block}
\vspace{2pt}
\begin{center}
\begin{tikzpicture}[scale=.92,transform shape]
  \node[logicbox,minimum width=2.7cm] (a) at (-3.4,0.4) {A};
  \node[logicbox,minimum width=2.7cm] (b) at (0,0.4) {B};
  \node[logicbox,minimum width=2.7cm] (c) at (3.4,0.4) {C};
  \node[tinylabel] at (-3.4,-0.55) {Bが嘘つき};
  \node[tinylabel] at (0,-0.55) {Cが嘘つき};
  \node[tinylabel] at (3.4,-0.55) {Aは正直者};
  \node[bridgebox,minimum width=5.5cm] at (0,-2.1) {誰が嘘つきか?};
\end{tikzpicture}
\end{center}
\onemessage{まず,発言を命題として読む}
\end{frame}

% 3
\begin{frame}{嘘つきパズル A}
\scriptsize
\begin{block}{条件}
  ちょうど1人だけが嘘つき.円 A, B, C は「その人が本当のことを言う」領域.
\end{block}
\vspace{-8pt}
\begin{center}
\begin{tikzpicture}[scale=.80,transform shape]
  \begin{scope}[xshift=-4.15cm]
    \node[font=\bfseries\color{logic}] at (0,1.38) {Aが本当 $\leftrightarrow$ Bが嘘};
    \draw[very thick,rounded corners=2pt,draw=line,fill=white] (-1.45,-1.22) rectangle (1.45,1.10);
    \fill[logicLight] (-.38,.12) circle (.72);
    \fill[logicLight] (.38,.12) circle (.72);
    \begin{scope}
      \clip (-.38,.12) circle (.72);
      \fill[white] (.38,.12) circle (.72);
    \end{scope}
    \draw[very thick,logic] (-.38,.12) circle (.72);
    \draw[very thick,logic] (.38,.12) circle (.72);
    \draw[very thick,logic] (0,-.48) circle (.72);
    \node at (-.78,.62) {A};
    \node at (.78,.62) {B};
    \node at (0,-1.02) {C};
  \end{scope}

  \begin{scope}
    \node[font=\bfseries\color{logic}] at (0,1.38) {Bが本当 $\leftrightarrow$ Cが嘘};
    \draw[very thick,rounded corners=2pt,draw=line,fill=white] (-1.45,-1.22) rectangle (1.45,1.10);
    \fill[logicLight] (.38,.12) circle (.72);
    \fill[logicLight] (0,-.48) circle (.72);
    \begin{scope}
      \clip (.38,.12) circle (.72);
      \fill[white] (0,-.48) circle (.72);
    \end{scope}
    \draw[very thick,logic] (-.38,.12) circle (.72);
    \draw[very thick,logic] (.38,.12) circle (.72);
    \draw[very thick,logic] (0,-.48) circle (.72);
    \node at (-.78,.62) {A};
    \node at (.78,.62) {B};
    \node at (0,-1.02) {C};
  \end{scope}

  \begin{scope}[xshift=4.15cm]
    \node[font=\bfseries\color{logic}] at (0,1.38) {Cが本当 $\leftrightarrow$ Aが本当};
    \fill[logicLight] (-1.45,-1.22) rectangle (1.45,1.10);
    \fill[white] (-.38,.12) circle (.72);
    \fill[white] (0,-.48) circle (.72);
    \begin{scope}
      \clip (-.38,.12) circle (.72);
      \fill[logicLight] (0,-.48) circle (.72);
    \end{scope}
    \draw[very thick,rounded corners=2pt,draw=line] (-1.45,-1.22) rectangle (1.45,1.10);
    \draw[very thick,logic] (-.38,.12) circle (.72);
    \draw[very thick,logic] (.38,.12) circle (.72);
    \draw[very thick,logic] (0,-.48) circle (.72);
    \node at (-.78,.62) {A};
    \node at (.78,.62) {B};
    \node at (0,-1.02) {C};
  \end{scope}
\end{tikzpicture}
\end{center}
\vspace{-10pt}
\begin{block}{答え}
  \centering
  \vocab{AとCが本当,Bが嘘}
\end{block}
\onemessage{論理条件は,可能な場合を削っていく操作として見られる}
\end{frame}

% 3
\begin{frame}{論理と... 空間?}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[logicbox,minimum width=2.5cm] (formula) at (-4.6,0.9) {$P \Rightarrow Q$};
  \node[font=\Huge\bfseries\color{bridge}] at (0,0.9) {?};
  \begin{scope}[xshift=4.0cm,yshift=0.55cm]
    \fill[spaceLight] (0,0) circle (1.25);
    \fill[spaceLight,opacity=.55] (-0.28,0) circle (0.65);
    \draw[very thick,spacec] (0,0) circle (1.25);
    \draw[very thick,spacec] (-0.28,0) circle (0.65);
    \node[text=logic] at (-0.28,0) {$P$};
    \node[text=logic] at (0.75,0.72) {$Q$};
  \end{scope}
  \draw[arrow] (-3.25,0.9) -- (-0.55,0.9);
  \draw[arrow] (0.55,0.9) -- (2.65,0.9);

  \node[font=\Large,align=center] at (0,-1.65) {なぜ,証明や真偽の話が\\領域の包含になるのか};
\end{tikzpicture}
\end{center}
\onemessage{なんで対応するの?という問題提起}
\end{frame}

% 4
\begin{frame}{今日の地図}
\begin{center}
\begin{tikzpicture}[node distance=.55cm,scale=.80,transform shape]
  \node[spacebox,minimum width=2.7cm,minimum height=1.05cm] (venn) {ベン図};
  \node[logicbox,minimum width=3.0cm,minimum height=1.05cm,right=of venn] (bool) {Boolean代数};
  \node[spacebox,minimum width=3.0cm,minimum height=1.05cm,right=of bool] (stone) {Stone空間};
  \node[bridgebox,minimum width=2.7cm,minimum height=1.05cm,right=of stone] (topos) {Topos};
  \draw[arrow] (venn) -- (bool);
  \draw[arrow] (bool) -- (stone);
  \draw[arrow] (stone) -- (topos);
  \node[tinylabel,below=.35cm of venn] {命題は領域};
  \node[tinylabel,below=.35cm of bool] {演算だけ残す};
  \node[tinylabel,below=.35cm of stone] {論理の空間};
  \node[tinylabel,below=.35cm of topos] {理論の空間};

  \begin{scope}[yshift=-2.2cm]
    \draw[very thick,logic] (-5.0,0) -- (-1.8,0);
    \draw[very thick,spacec] (-0.8,0) -- (2.4,0);
    \draw[very thick,bridge] (3.4,0) -- (5.0,0);
    \node[font=\scriptsize\bfseries\color{logic}] at (-3.4,-.35) {論理};
    \node[font=\scriptsize\bfseries\color{spacec}] at (.8,-.35) {幾何};
    \node[font=\scriptsize\bfseries\color{bridge}] at (4.2,-.35) {対応};
  \end{scope}
\end{tikzpicture}
\end{center}
\onemessage{今日の道筋は,丸から理論の空間へ進むこと}
\end{frame}

% 7
\begin{frame}{可能世界の空間}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[world] at (-1.5,-1.0) {$00$};
  \node[worldgood] at (1.5,-1.0) {$10$};
  \node[world] at (-1.5,1.0) {$01$};
  \node[world] at (1.5,1.0) {$11$};
  \draw[very thick,line] (-1.5,-1.0) -- (1.5,-1.0) -- (1.5,1.0) -- (-1.5,1.0) -- cycle;
  \node[tinylabel] at (0,-1.75) {$p$};
  \node[tinylabel] at (-2.25,0) {$q$};

  \node[logicbox] at (-5.0,0.45) {$\varphi=p\land \neg q$};
  \draw[arrow] (-3.85,0.25) -- (-2.2,-0.55);
  \node[spacebox] at (5.0,0.45) {$\sem{\varphi}=\{10\}$};
  \draw[arrow] (2.2,-0.55) -- (3.7,0.25);
\end{tikzpicture}
\end{center}
\onemessage{論理に対して,その「可能世界」の空間を割り当てる}
\end{frame}

% 8
\begin{frame}{論理演算は塗り絵}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \fill[spaceLight] (-1.1,0) circle (1.35);
  \fill[spaceLight,opacity=.62] (1.1,0) circle (1.35);
  \begin{scope}
    \clip (-1.1,0) circle (1.35);
    \fill[bridgeLight] (1.1,0) circle (1.35);
  \end{scope}
  \draw[very thick,spacec] (-1.1,0) circle (1.35);
  \draw[very thick,spacec] (1.1,0) circle (1.35);
  \node[text=logic] at (-1.55,.75) {$P$};
  \node[text=logic] at (1.55,.75) {$Q$};
  \node[font=\Large\bfseries\color{bridge}] at (0,0) {$P\land Q$};

  \node[bridgebox,anchor=west] at (4.0,1.2) {\textcolor{logic}{$\land$}\quad \textcolor{spacec}{$\cap$}};
  \node[bridgebox,anchor=west] at (4.0,0.0) {\textcolor{logic}{$\lor$}\quad \textcolor{spacec}{$\cup$}};
  \node[dangerbox,anchor=west] at (4.0,-1.2) {\textcolor{logic}{$\neg$}\quad $\mathrm{int}(X\setminus -)$};
\end{tikzpicture}
\end{center}
\onemessage{論理に対して,その「可能世界」の空間を割り当てる}
\end{frame}

\section{Stone双対}

% 9
\begin{frame}{1億円パズル Q}
\small
\begin{block}{問題}
金持ちが言う:
\[
  \text{真なら }1000\text{円},\qquad
  \text{偽なら }1000\text{円以外}.
\]
\end{block}
\vspace{4pt}
\begin{center}
\includegraphics[width=.74\textwidth,height=.27\textheight,keepaspectratio]{figures/one_hundred_million_yen_puzzle_q.png}
\end{center}
\vspace{-8pt}
{\centering\tiny\color{muted}出典(改変): R. M. Smullyan, \textit{Forever Undecided}, Knopf, 1987; cf. \textit{Logical Labyrinths}, A K Peters, 2008.\par}
\onemessage{発言の真偽によって受け取る金額が変わる}
\end{frame}

% 10
\begin{frame}{1億円パズル A}
\scriptsize
\begin{columns}[T,totalwidth=\textwidth]
\begin{column}{0.47\textwidth}
\begin{block}{答え}
支払額を $x$ として,次の命題を言う:
\[
  S:\quad x\neq1000\ \land\ x\neq10^8.
\]
\end{block}
\vspace{-4pt}
\begin{block}{約束}
\[
  S\Rightarrow x=1000,\qquad
  \neg S\Rightarrow x\neq1000.
\]
\end{block}
\end{column}
\begin{column}{0.53\textwidth}
\begin{center}
\begin{tikzpicture}[scale=.82,transform shape]
  \node[logicbox,minimum width=4.0cm] (true) at (0,1.8) {$S$ が真};
  \node[dangerbox,minimum width=4.0cm] (bad) at (0,0.45) {約束より $x=1000$\\よって $S$ は偽};
  \draw[arrow] (true) -- (bad);
  \node[dangerbox,minimum width=3.6cm] at (0,-0.75) {$S$ は真ではない};
  \draw[arrow] (bad) -- (0,-0.25);

  \node[spacebox,minimum width=2.6cm] (a) at (-2.0,-2.05) {$x=1000$};
  \node[bridgebox,minimum width=2.6cm] (b) at (2.0,-2.05) {$x=10^8$};
  \node[tinylabel] at (0,-1.35) {$\neg S$ なので $x=1000$ または $x=10^8$};
  \draw[very thick,danger] (-2.85,-1.65) -- (-1.15,-2.45);
  \draw[very thick,danger] (-1.15,-1.65) -- (-2.85,-2.45);
  \node[tinylabel,align=center] at (-2.0,-2.9) {偽なら\\1000円以外};
  \node[font=\large\bfseries\color{bridge}] at (2.0,-2.9) {残る};
\end{tikzpicture}
\end{center}
\end{column}
\end{columns}
\onemessage{論理をうまく設計すると,真偽によらず望む結論へ追い込める}
\end{frame}

% 11
\begin{frame}{1億円パズルをCantor空間で見る}
\scriptsize
\begin{columns}[T,totalwidth=\textwidth]
\begin{column}{0.53\textwidth}
\begin{center}
\begin{tikzpicture}[scale=.72,transform shape,
  bit/.style={circle,draw=ink!65,fill=white,inner sep=0pt,minimum size=3.2mm},
  chosen/.style={circle,draw=spacec,fill=spaceLight,very thick,inner sep=0pt,minimum size=4.4mm}
]
  \node[bit] (r) at (0,2.55) {};

  \node[chosen] (a0) at (-2.8,1.45) {};
  \node[bit] (a1) at (2.8,1.45) {};

  \node[bit] (b00) at (-4.2,0.35) {};
  \node[chosen] (b01) at (-1.4,0.35) {};
  \node[bit] (b10) at (1.4,0.35) {};
  \node[bit] (b11) at (4.2,0.35) {};

  \node[bit] (c000) at (-4.9,-0.75) {};
  \node[bit] (c001) at (-3.5,-0.75) {};
  \node[chosen] (c010) at (-2.1,-0.75) {};
  \node[bit] (c011) at (-0.7,-0.75) {};
  \node[bit] (c100) at (0.7,-0.75) {};
  \node[bit] (c101) at (2.1,-0.75) {};
  \node[bit] (c110) at (3.5,-0.75) {};
  \node[bit] (c111) at (4.9,-0.75) {};

  \foreach \u/\v in {r/a0,r/a1,a0/b00,a0/b01,a1/b10,a1/b11,b00/c000,b00/c001,b01/c010,b01/c011,b10/c100,b10/c101,b11/c110,b11/c111}
    \draw[thick,line] (\u) -- (\v);
  \draw[very thick,spacec] (r) -- (a0) -- (b01) -- (c010);

  \node[tinylabel] at (-1.85,2.15) {$P(1)=0$};
  \node[tinylabel] at (1.85,2.15) {$P(1)=1$};
  \node[tinylabel] at (-2.55,0.85) {$P(2)=1$};
  \node[tinylabel] at (-1.55,-0.2) {$P(3)=0$};
  \node[font=\scriptsize\color{spacec}\bfseries] at (-2.1,-1.32) {$010\cdots$};

  \draw[very thick,logic,rounded corners=2pt] (-5.2,-1.55) rectangle (-0.35,1.75);
  \node[tinylabel,logic] at (-3.2,1.98) {clopen cylinder};
  \node[tinylabel] at (0,-2.0) {無限パス = すべての $P(n)$ への真偽割り当て};
\end{tikzpicture}
\end{center}
\end{column}
\begin{column}{0.43\textwidth}
\begin{block}{無限ベン図}
\[
  x=(\varepsilon_1,\varepsilon_2,\ldots)\in2^{\mathbb N}
\]
\[
  \varepsilon_n=1
  \quad\Longleftrightarrow\quad
  P(n)\text{ が真}.
\]
\end{block}
\vspace{-4pt}
\begin{block}{命題は領域}
\[
  \widehat{P(n)}
  =
  \{x\in2^{\mathbb N}\mid \varepsilon_n=1\}.
\]
有限個の真偽条件は,有限段で決まる cylinder になる.
\end{block}
\vspace{-4pt}
\begin{block}{Stone空間}
無限 Boolean algebra の点は,このような無限パスとして見える.
\end{block}
\end{column}
\end{columns}
\onemessage{有限個の円を,無限回の左右分岐に置き換える}
\end{frame}

% 9
\begin{frame}{Boolean代数}
\begin{center}
\begin{tikzpicture}[node distance=1.0cm]
  \node[spacebox,minimum width=2.6cm] (venn) {ベン図};
  \node[bridgebox,minimum width=2.8cm,right=of venn] (ops) {$\cap,\ \cup,\ {}^c$};
  \node[logicbox,minimum width=3.0cm,right=of ops] (ba) {Boolean代数};
  \draw[arrow] (venn) -- (ops);
  \draw[arrow] (ops) -- (ba);

  \node[font=\Large\color{logic},align=center] at (0,-2.0) {$[\varphi]\wedge[\psi]=[\varphi\land\psi]$};
  \node[tinylabel] at (0,-2.65) {論理的に同じ式を同一視する};
\end{tikzpicture}
\end{center}
\onemessage{論理操作は代数}
\end{frame}

% 10
\begin{frame}{有限なら,点に戻る}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[dot,label=below:$a$] (a) at (-4.6,-0.3) {};
  \node[dot,label=below:$b$] (b) at (-3.8,0.8) {};
  \node[dot,label=below:$c$] (c) at (-2.9,-0.5) {};
  \node[tinylabel] at (-3.75,-1.35) {$X=\{a,b,c\}$};

  \node[font=\Large\color{bridge}] at (0,0) {$\mathcal{P}$};
  \draw[arrow] (-2.2,0) -- (-0.65,0);
  \draw[arrow] (0.65,0) -- (2.2,0);

  \node[world] at (3.2,-1.0) {$a$};
  \node[world] at (4.3,-1.0) {$b$};
  \node[world] at (5.4,-1.0) {$c$};
  \node[logicbox,minimum width=3.2cm] at (4.3,0.65) {$\mathcal{P}(X)$};
  \node[tinylabel] at (4.3,-1.75) {atomたち};

  \node[font=\Large\bfseries\color{ink}] at (0,-2.65) {$\FinBool \simeq \FinSet^{op}$};
\end{tikzpicture}
\end{center}
\onemessage{圏の言葉で,本当に対応は定理になる}
\end{frame}

% 11
\begin{frame}{無限では,位相が出る}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[world,minimum size=8mm] at (-4.20,1.1) {0};
  \node[world,minimum size=8mm] at (-3.42,1.1) {1};
  \node[world,minimum size=8mm] at (-2.64,1.1) {0};
  \node[world,minimum size=8mm] at (-1.86,1.1) {0};
  \node[world,minimum size=8mm] at (-1.08,1.1) {1};
  \node[world,minimum size=8mm] at (-0.30,1.1) {1};
  \node[world,minimum size=8mm] at (0.48,1.1) {0};
  \node[world,minimum size=8mm] at (1.26,1.1) {1};
  \node[world,minimum size=8mm] at (2.04,1.1) {$\cdots$};
  \draw[very thick,logic] (-3.95,0.35) rectangle (-2.45,1.85);
  \draw[very thick,logic] (-1.62,0.35) rectangle (-0.1,1.85);
  \node[tinylabel] at (-3.2,0.05) {$p_1,p_2$を見る};
  \node[tinylabel] at (-0.85,0.05) {$p_4,p_5$を見る};

  \node[spacebox] (twon) at (0,-1.15) {$2^{\mathbb{N}}$};
  \node[logicbox] (finite) at (-4.0,-1.15) {有限個の条件};
  \node[bridgebox] (cyl) at (4.0,-1.15) {clopen cylinder};
  \draw[arrow] (finite) -- (twon);
  \draw[arrow] (twon) -- (cyl);
\end{tikzpicture}
\end{center}
\onemessage{問題提起: 無限人のパズルに対応する図形は何か}
\end{frame}

% 12
\begin{frame}{Stone双対}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[logicbox,minimum width=2.8cm] (b) at (-4.0,0.8) {$b\in B$};
  \node[bridgebox,minimum width=3.3cm] (open) at (0,0.8) {$\widehat b=\{x\mid x(b)=1\}$};
  \node[spacebox,minimum width=3.0cm] (stone) at (4.1,0.8) {$\Stone(B)$};
  \draw[arrow] (b) -- (open);
  \draw[arrow] (open) -- (stone);

  \begin{scope}[yshift=-1.55cm]
    \fill[spaceLight] (0,0) ellipse (2.1 and 0.85);
    \fill[bridgeLight] (-0.55,0.02) ellipse (0.95 and 0.55);
    \draw[very thick,spacec] (0,0) ellipse (2.1 and 0.85);
    \draw[very thick,bridge] (-0.55,0.02) ellipse (0.95 and 0.55);
    \node[tinylabel] at (1.1,0.35) {Stone空間};
    \node at (-0.55,0.02) {$\widehat b$};
  \end{scope}

  \node[font=\Large\bfseries\color{ink}] at (0,-3.0) {$B\cong\Clop(\Stone(B))$};
\end{tikzpicture}
\end{center}
\onemessage{無限Bool代数に対応する空間は「位相空間」で作れる}
\end{frame}

\section{Topos}

% 13
\begin{frame}{まだ不満がある}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[logicbox,minimum width=4.0cm,minimum height=1.4cm] at (-3.4,0.8) {論理の不満\\{\small 量化子がない}};
  \node[spacebox,minimum width=4.0cm,minimum height=1.4cm] at (3.4,0.8) {幾何の不満\\{\small 空間がバラバラ}};
  \node[bridgebox,minimum width=3.2cm] at (0,-1.25) {Stone双対};
  \draw[arrow] (-2.25,0.1) -- (-0.85,-0.85);
  \draw[arrow] (2.25,0.1) -- (0.85,-0.85);

  \node[font=\Large\color{logic}] at (-3.4,-2.3) {$\exists,\ \forall$};
  \node[font=\Large\color{spacec}] at (3.4,-2.3) {境界・連続性};
\end{tikzpicture}
\end{center}
\onemessage{Stone双対は,論理からも幾何からも不満}
\end{frame}

% 14
\begin{frame}{境界では,排中律が揺れる}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \draw[->,very thick,ink] (-4.8,0) -- (4.8,0) node[right] {$\mathbb{R}$};
  \draw[very thick,spacec] (0.15,0) -- (4.2,0);
  \draw[very thick,spacec] (-4.2,0) -- (-0.15,0);
  \fill[paper,draw=danger,very thick] (0,0) circle (4pt);
  \node[font=\large\color{logic}] at (2.2,0.55) {$U$};
  \node[font=\large\color{logic}] at (-2.3,0.55) {$\neg U$};
  \node[dangerbox] at (0,-1.45) {$U\lor\neg U=\mathbb{R}\setminus\{0\}$};
\end{tikzpicture}
\end{center}
\onemessage{Stone双対は,論理からも幾何からも不満}
\end{frame}

% 15
\begin{frame}{不満を,互いに解く}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[logicbox,minimum width=3.8cm] (l) at (-4.0,1.05) {量化子がほしい};
  \node[spacebox,minimum width=3.8cm] (s) at (4.0,1.05) {空間を広げたい};
  \node[spacebox,minimum width=3.8cm] (sheaf) at (-4.0,-1.05) {sheaf};
  \node[logicbox,minimum width=3.8cm] (int) at (4.0,-1.05) {直観主義論理};
  \draw[arrow] (l) -- node[right,tinylabel]{幾何の回答} (sheaf);
  \draw[arrow] (s) -- node[left,tinylabel]{論理の回答} (int);
  \node[bridgebox,minimum width=2.8cm,minimum height=1.15cm] at (0,0) {Topos};
  \draw[arrow] (sheaf) -- (-1.35,-0.35);
  \draw[arrow] (int) -- (1.35,-0.35);
\end{tikzpicture}
\end{center}
\onemessage{不満を,互いに解決する}
\end{frame}

% 16
\begin{frame}{Toposの真理値}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node (A) at (-2.6,1.3) {$A$};
  \node (one) at (2.0,1.3) {$1$};
  \node (X) at (-2.6,-1.0) {$X$};
  \node (Om) at (2.0,-1.0) {$\Omega$};
  \draw[>->,very thick,spacec] (A) -- (X);
  \draw[linearrow] (A) -- (one);
  \draw[linearrow] (one) -- node[right] {$\true$} (Om);
  \draw[linearrow] (X) -- node[below] {$\chi_A$} (Om);
  \draw[draw=line,rounded corners=2pt] (-3.25,-1.55) rectangle (2.65,1.8);

  \node[spacebox] at (-5.1,0.1) {$A\hookrightarrow X$};
  \node[logicbox] at (5.0,0.1) {$\chi_A:X\to\Omega$};
  \node[font=\Large\bfseries\color{ink}] at (0,-2.65) {$\Sub_{\mathcal E}(X)\cong\mathcal E(X,\Omega)$};
\end{tikzpicture}
\end{center}
\onemessage{Toposは,その両方を実現したもの}
\end{frame}

% 17
\begin{frame}{量化子は射影}
\begin{center}
\begin{tikzpicture}[scale=.86,transform shape]
  \draw[->,very thick,ink] (-3.8,-1.65) -- (3.8,-1.65) node[right] {$X$};
  \draw[->,very thick,ink] (-3.35,-1.95) -- (-3.35,2.0) node[above] {$Y$};
  \fill[spaceLight] (-0.25,0.25) ellipse (1.85 and .9);
  \draw[very thick,spacec] (-0.25,0.25) ellipse (1.85 and .9);
  \draw[dashed,very thick,bridge] (-2.1,-1.65) -- (1.6,-1.65);
  \draw[dashed,bridge] (-2.1,-1.65) -- (-2.1,-0.1);
  \draw[dashed,bridge] (1.6,-1.65) -- (1.6,-0.1);
  \node[spacebox] at (-0.25,1.75) {$R\subset X\times Y$};
  \node[logicbox] at (-0.25,-2.55) {$\exists y\,R(x,y)$};
  \node[font=\Large\bfseries\color{ink}] at (4.1,0.2) {$\exists_\pi\dashv\pi^\ast\dashv\forall_\pi$};
\end{tikzpicture}
\end{center}
\onemessage{sheafを考えることで,一階述語論理を扱える}
\end{frame}

% 18
\begin{frame}{理論が空間になる}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[logicbox,minimum width=3.2cm] (T) at (-4.2,0.8) {理論 $T$};
  \node[bridgebox,minimum width=3.2cm] (ET) at (0,0.8) {$\mathcal{E}_T$};
  \node[spacebox,minimum width=3.2cm] (models) at (4.2,0.8) {モデルたち};
  \draw[arrow] (T) -- node[above,tinylabel]{classify} (ET);
  \draw[arrow] (ET) -- node[above,tinylabel]{points} (models);

  \node[world] (mone) at (-1.15,-1.35) {$M_1$};
  \node[world] (mtwo) at (0,-1.65) {$M_2$};
  \node[world] (mthree) at (1.15,-1.35) {$M_3$};
  \draw[linearrow] (mone) -- (ET);
  \draw[linearrow] (mtwo) -- (ET);
  \draw[linearrow] (mthree) -- (ET);
  \node[tinylabel] at (0,-2.3) {点 = 集合値モデル};
\end{tikzpicture}
\end{center}
\onemessage{sheafを考えることで,一階述語論理を扱える}
\end{frame}

% 19
\begin{frame}{Locale: 開集合から空間へ}
\begin{center}
\begin{tikzpicture}[scale=1.0]
  \node[logicbox,minimum width=3.2cm] (hey) at (-4.3,0.9) {Heyting代数};
  \node[spacebox,minimum width=3.2cm] (loc) at (0,0.9) {Locale};
  \node[bridgebox,minimum width=3.2cm] (ltop) at (4.3,0.9) {Localic topos};
  \draw[arrow] (hey) -- (loc);
  \draw[arrow] (loc) -- (ltop);

  \node[logicbox,minimum width=3.6cm] at (-2.3,-1.5) {命題的\\geometric theory};
  \node[bridgebox,minimum width=3.6cm] at (2.3,-1.5) {開集合の\\論理};
  \draw[<->,very thick,bridge] (-0.35,-1.5) -- (0.35,-1.5);
\end{tikzpicture}
\end{center}
\onemessage{直観主義論理を使うと,広い意味の空間を論理として実現できる}
\end{frame}

% 20
\begin{frame}{Toposは奇跡なのか}
\begin{center}
\begin{tikzpicture}[scale=.88,transform shape]
  \draw[fill=white,draw=line,very thick,rounded corners=3pt] (-5.2,-2.35) rectangle (5.2,2.25);
  \draw[spacec!35,very thick] (-5.0,-0.7) .. controls (-3.2,1.8) and (-1.2,-1.8) .. (0.8,1.6) .. controls (2.2,2.6) and (3.7,-0.7) .. (5.0,0.9);
  \draw[logic!35,very thick] (-4.7,1.45) .. controls (-2.2,0.3) and (-0.8,1.2) .. (1.2,-0.5) .. controls (2.8,-1.8) and (3.8,1.3) .. (4.8,-1.1);

  \fill[spaceLight,opacity=.75] (-1.25,0.05) ellipse (2.1 and 1.15);
  \fill[logicLight,opacity=.75] (1.25,0.05) ellipse (2.1 and 1.15);
  \begin{scope}
    \clip (-1.25,0.05) ellipse (2.1 and 1.15);
    \fill[bridgeLight,opacity=.95] (1.25,0.05) ellipse (2.1 and 1.15);
  \end{scope}
  \draw[very thick,spacec] (-1.25,0.05) ellipse (2.1 and 1.15);
  \draw[very thick,logic] (1.25,0.05) ellipse (2.1 and 1.15);
  \node[font=\large\bfseries\color{spacec}] at (-2.0,1.55) {空間的条件};
  \node[font=\large\bfseries\color{logic}] at (2.0,1.55) {論理的条件};
  \node[font=\Large\bfseries\color{bridge}] at (0,0.05) {$\land$};
  \node[bridgebox] at (0,-1.75) {行動できる場所};
\end{tikzpicture}
\end{center}
\onemessage{論理は,空間を切り分けて行動する能力から生まれたのではないか}
\end{frame}

\end{document}