Microsoft Quantum Development Kitのインストール
環境
$ lsb_release -d Description: Ubuntu 18.04.2 LTS
参照サイト
https://docs.microsoft.com/en-us/quantum/install-guide/command-line?view=qsharp-preview
手順
参照サイトに書いてあるとおりにインストールします。
- .NET Core SDK 2.0以上(Build Appsの方)を.NET downloads pageからインストール
$ dotnet new -i Microsoft.Quantum.ProjectTemplates
を実行
これですべてのインストールが完了。
動作確認
参照サイトに書いてあるとおりに動作確認してみる。
$ git clone https://github.com/Microsoft/Quantum.git $ cd Quantum/Samples/src/Teleportation/ $ dotnet run Round 0: Sent True, got True. Teleportation successful!! Round 1: Sent False, got False. Teleportation successful!! Round 2: Sent True, got True. Teleportation successful!! Round 3: Sent False, got False. Teleportation successful!! Round 4: Sent False, got False. Teleportation successful!! Round 5: Sent True, got True. Teleportation successful!! Round 6: Sent True, got True. Teleportation successful!! Round 7: Sent True, got True. Teleportation successful!!
テレポーテーションのシミュレーションをしているのかなぁ。
vim設定メモ
vim初心者の設定です。
以下を行うための.vimrc
#
で→方向に幅を大きくする"
で←方向に幅を小さくする+
で↓方向に高さを大きくする-
で上方向に高さを小さくするe
でファイルツリーを出す
set nowritebackup set nobackup " vim の矩形選択で文字が無くても右へ進める set virtualedit=block " 検索結果をハイライト表示 set hlsearch set noerrorbells " タブ文字を CTRL-I で表示し、行末に $ で表示する set list " 行末のスペースを可視化 set listchars=tab:^\ ,trail:~ set expandtab set shiftwidth=2 set showmatch set smartindent set noswapfile set title set number syntax on " netrw設定 " 上部に表示される情報を非表示 let g:netrw_banner = 0 " 表示形式をTreeViewに変更 let g:netrw_liststyle = 3 " 左右分割を右側に開く let g:netrw_altv = 1 " open in previous window let g:netrw_browse_split = 4 " 分割で開いたときに20%のサイズで開く let g:netrw_winsize = 20 nnoremap " <C-w>< nnoremap # <C-w>> nnoremap - <C-w>- nnoremap + <C-w>+ nnoremap e :Vexplor<CR>
グラフの圏における冪対象
グラフの圏の対象はグラフである。をエッジ1つの対象、をノード1つの対象とする。 この圏における冪対象, , , はそれぞれどんなグラフだろうか?
の形
グラフがどんな形をしているかを調べるためには、まず、射, 射がそれぞれ何個あるかを調べる。 また、グラフの圏における終対象はノード1つエッジ(ループ)1つのグラフなので、射の個数がが持つループの個数になる。
冪対象の定義から、以下の一対一対応が成り立つ。
,
下側の射のdomainは以下のようになる。
,
は4個ある。も4個ある。または1個あるので、ループは1個ある。 よって、は4個のノード、4個のエッジ(そのうち1つはループ)のグラフであることがわかる。
の4個のエッジ(射)を, , , と書こう。
以下のように、のsourceを0, targetを1と書く。
は以下のようになる。
4個のエッジを以下のように定義する。
ここで以下の2つの射を考える。
はノードをエッジのsourceに移す射であり、はノードをエッジのtargetに移す射とする。
と書くと、以下が成り立つ。
これらと, , を合成することで、の形を調べる。
まず、と合成する。
よって、エッジは以下のような形をしている。
次にと合成する。
よって、エッジは以下のような形をしている。
続いてと合成する。
よって、エッジは以下のような形をしている。
最後にと合成する。
よって、エッジは以下のような形をしている。
以上より、グラフは以下の形をしていることがわかった。
同様にして他のグラフの形もわかる。
の形
の形
の形
冪対象に関する定理
定理 を示す
① 射の定義
評価写像を使った以下の図式が可換である。
また、以下の図式も可換である。
次に、2つの評価写像
と、以下の2つの可換図式を使って
2つの射
を定義する。
ここで、以下を可換にする唯一の射をと定義する。
すなわち、
が成り立つ。
② 射の定義
まず、以下の可換図式が成り立つ。
評価写像, を使った次の2つの図式も可換。
ここで、以下を可換にする唯一の射をと定義する。
すなわち、
が成り立つ。
射を以下の可換図式で定義する。
すなわち、
が成り立つ。
③ の計算
①の最後の2つの式の両辺に、右からを掛ける。
これら2つの式から、以下の可換図式が成り立つことがわかる。
積の普遍性から、2つの式
を示せば、
が言える。
②の最後の3つの式から
がわかる。
①の3番目、4番目の図式から
が成り立つので、代入して
評価写像がmonomorphismであることを使うと、上記2つの式から
が成り立つことがわかり、
が示せた。
④ の計算
可換図式
が成り立つこと、すなわち
を示せば
が言える。
の右からを掛けて
この式の左辺がであることを示す。
②の最初の式の右からを掛けて
①の最後の式から
①の3番目の図から
★
②の2番目の式の右からを掛けて
①の最後の式から
①の4番目の図から
★
★から、以下の図式において、が成り立つ。
よって、が示せた。
おまけ 可換図式を書くのに使ったtexソース
\documentclass[12pt]{ujarticle} \usepackage{amsmath,amsfonts,amsthm,amssymb,amscd} \usepackage[all]{xy} \def\objectstyle{\displaystyle} \begin{document} \[ \xymatrix@!C=150pt{ T\times (Y_1\times Y_2)^T \ar[r]^{1_T\times 1_{(Y_1\times Y_2)^T}} \ar[rd]_{e1} & T\times (Y_1\times Y_2)^T \ar[d]^{e1} \\ & Y_1\times Y_2 } \] \[ \xymatrix{ & T \times (Y_1 \times Y_2)^T \ar[ld]_{p_{Y_1} \circ e1} \ar@{.>}[d]^{e1} \ar[rd]^{p_{Y_2} \circ e1} & \\ Y_1 & Y_1 \times Y_2 \ar[l]_{p_{Y_1}} \ar[r]^{p_{Y_2}} & Y_2 } \] \[ \xymatrix@!C=150pt{ T \times (Y_1 \times Y_2)^T \ar[rd]_{p_{Y_1} \circ e1} \ar[r]^{1_T \times \widetilde{p_{Y_1} \circ e1}} & T \times Y_1^T \ar[d]^{e2} \\ & Y_1 } \] \[ \xymatrix@!C=150pt{ T \times (Y_1 \times Y_2)^T \ar[rd]_{p_{Y_2} \circ e1} \ar[r]^{1_T \times \widetilde{p_{Y_2} \circ e1}} & T \times Y_2^T \ar[d]^{e3} \\ & Y_2 } \] \[ \xymatrix{ & (Y_1 \times Y_2)^T \ar[ld]_{\widetilde{p_{Y_1} \circ e1}} \ar@{.>}[d]^{h} \ar[rd]^{\widetilde{p_{Y_2} \circ c1}} & \\ Y_1^T & Y_1^T \times Y_2^T \ar[l]_{p_{Y_1^T}} \ar[r]^{p_{Y_2^T}} & Y_2^T } \] \[ \xymatrix@!C=100pt{ & Y_1^T \times Y_2^T \ar[ld]_{p_{Y_1^T}} \ar@{.>}[d]^{1_{Y_1^T \times Y_2^T}} \ar[rd]^{p_{Y_2^T}} & \\ Y_1^T & Y_1^T \times Y_2^T \ar[l]_{p_{Y_1^T}} \ar[r]^{p_{Y_2^T}} & Y_2^T } \] \[ \xymatrix@!C=150pt{ T \times (Y_1^T \times Y_2^T) \ar[rd]_{e2 \circ (1_T \times p_{Y_1^T})} \ar[r]^{1_T \times p_{Y_1^T}} & T \times Y_1^T \ar[d]^{e2} \\ & Y_1 } \] \[ \xymatrix@!C=150pt{ T \times (Y_1^T \times Y_2^T) \ar[rd]_{e3 \circ (1_T \times p_{Y_2^T})} \ar[r]^{1_T \times p_{Y_2^T}} & T \times Y_2^T \ar[d]^{e3} \\ & Y_2 } \] \[ \xymatrix{ & T \times (Y_1^T \times Y_2^T) \ar[ld]_{e2 \circ (1_T \times p_{Y_1^T})} \ar@{.>}[d]^{g} \ar[rd]^{e3 \circ (1_T \times p_{Y_2^T})} & \\ Y_1 & Y_1 \times Y_2 \ar[l]_{p_{Y_1}} \ar[r]^{p_{Y_2}} & Y_2 } \] \[ \xymatrix@!C=150pt{ T \times (Y_1^T \times Y_2^T) \ar[rd]_{g} \ar[r]^{1_T \times \widetilde{g}} & T \times (Y_1 \times Y_2)^T \ar[d]^{e1} \\ & Y_1 \times Y_2 } \] \[ \xymatrix{ & Y_1^T \times Y_2^T \ar[ld]_{\widetilde{p_{Y_1} \circ e1} \circ \widetilde{g}} \ar@{.>}[d]^{h \circ \widetilde{g}} \ar[rd]^{\widetilde{p_{Y_2} \circ e1} \circ \widetilde{g}} & \\ Y_1^T & Y_1^T \times Y_2^T \ar[l]_{p_{Y_1^T}} \ar[r]^{p_{Y_2^T}} & Y_2^T } \] \[ \xymatrix{ T \times (Y_1 \times Y_2)^T \ar[rrd]_{e1?} \ar[r]^{1_T \times h} & T \times (Y_1^T \times Y_2^T) \ar[r]^{1_T \times \widetilde{g}} & T \times (Y_1 \times Y_2)^T \ar[d]^{e1} \\ & & Y_1 \times Y_2 } \] \[ \xymatrix@!C=100pt{ & T \times (Y_1 \times Y_2)^T \ar[ld]_{p_{Y_1} \circ e1} \ar@{.>}[d]^{e1 = g \circ (1_T \times h)} \ar[rd]^{p_{Y_2} \circ e1} & \\ Y_1 & Y_1 \times Y_2 \ar[l]_{p_{Y_1}} \ar[r]^{p_{Y_2}} & Y_2 } \] \end{document}
texインストールメモ
以下の記事を参考にさせていただきました。ありがとうございます。
- Ubuntu上でtexをコンパイルしてpdfとして保存する - Qiita
- TeX入門
- http://www.math.u-ryukyu.ac.jp/~tsukuda/computer/tex/files/xypic-example.pdf
texliveをインストールしました。 圏論の可換図式を書くためのライブラリxy-picは、texliveに含まれているため、すぐ使えました。
$ lsb_release -d Description: Ubuntu 18.04.1 LTS $ sudo apt install texlive-lang-japanese $ sudo apt install texlive-fonts-recommended $ sudo apt install texlive-fonts-extra $ sudo apt install xdvik-ja $ sudo apt install gv $ cat test.tex \documentclass[12pt]{ujarticle} \usepackage{amsmath,amsfonts,amsthm,amssymb,amscd} \usepackage[all]{xy} \def\objectstyle{\displaystyle} \begin{document} \[ \xymatrix{ A \ar[r] \ar[rrd] & B & \ar[d] \\ C \ar[u] & A \ar[l] \ar[lu] & D } \] \end{document} $ uplatex test.tex $ dvipdfmx test.dvi $ firefox test.pdf
Conceptual Mathematics, Session29, Exercise1
対角線定理(Diagonal Theorem)
積を持つ圏で考える。
対象が以下の命題1を満たすならば、任意のendomap は少なくとも1つの不動点を持つ。 すなわち、を満たす点が存在する。
命題1
射が任意の射をパラメタライズできるような対象を持つ。 すなわち、と表せるような点が存在する。
対角線定理の証明
が与えられており、以下の図式が可換であると仮定する。 このとき、が不動点を持つことを示す。
ここでは対角写像である。
図式が可換であることから、任意の点に対して
が成り立つ。
また、はをパラメタライズできるので、
を満たす点が存在する。
にを代入すると
となり、が不動点を持つことが示せた。
対角線定理拡張版
Session29, Exercise1 (p.306)は、対角線定理を少し拡張した以下の定理を示すという問題である。
射が任意の射を"弱く"パラメタライズできる(weakly parameterize)ならば、 任意のendomap は不動点を持つ。
"弱くパラメタライズする"の意味
射が任意の射を弱くパラメタライズするとは、任意の射に対して 点が存在し、可換図式1のが可換図式2を満たすことである。
可換図式1
は定値写像であり、任意のに対して。
可換図式2
は任意の点。
対角線定理拡張版の証明
可換図式2のとして対角写像ととendomap の合成を選ぶ。 以下の図式において、が成り立つ。
は任意の点。
をと書くと、
が成り立ち、にを代入すると
となるので、がの不動点となることが示せた。
メモ
- amscdだと、斜めの矢印、左矢印、破線矢印が書けなかった
- XyJax を使おうとしたけど、はてなブログでの使い方がわからなかった https://github.com/sonoisa/XyJax
[tex: f(t_{\xi}, t_{\xi})]
が表示されなくて困った。t\xi
をt_{\xi}
の代わりに使った。tex苦手なので間違っているかも。