SlideShare a Scribd company logo
Homebrewによるソフトウェアの実装(2)
-- Mac OS 10.15 (Catalina)用 --
溝 ⼝ 佳 寛
九州⼤学マス・フォア・インダストリ研究所
2020年5⽉19⽇ (Ver.2)
① CoqIDE (Coq定理証明支援システム)
https://coq.inria.fr/
SSReflect (SSReflect証明戦術ライブラリ)
② MathComp (形式数学理論ライブラリ)
https://github.com/math-comp/math-comp
① CoqIDE (Coq定理証明支援システム)
2
CoqIDEのインストールは brew cask install coqide で行います.
/Applications/CoqIDE_8.11.app が実装されますが, そのままクリックしても起動出来ません.
[システム環境設定]→[セキュリティとプライバシー]でCoqIDEのブロックを解除します.
アプリケーションフォルダ
の CoqIDE_8.11をダブルク
リックするとCoqIDEが立ち
上がります.
② 式の入力
1+1を計算したい!
③ 式の実行
④ 結果の確認
システム環境設定
↑パスワードでロック解除
① CoqIDEの起動
② MathComp (形式数学理論ライブラリ) [旧]
3
MathCompのインストールは brew install mathcomp で行います.
SsreflectやMathCompのライブラリを使った証明が行えます.
Ssreflectの読み込みは ① Require Import ssreflect. で行います.
MathCompのライブラリは, From mathcomp Require Import から行います.
例えば, div ライブラリのインポートは,
② From mathcomp Require Import div.
で行います.
これが, どうもうまく
いきません.(2019/5/18)
※ /usr/local/Cellar/math-comp/1.10.0_3/lib/coq/user-contrib/mathcomp に
インストールされますが,
/usr/local/lib/coq/user-contrib や,
/Applications/CoqIDE_8.11.1.app/Contents/Resources/lib/coq/user-contrib/
とつながりません!!
② MathComp (形式数学理論ライブラリ) [新]
4
MathCompのインストールは, ソースファイルをダウロードして, 自分でコンパイルします.
① https://github.com/math-comp/math-comp から,
Download ZIP でソースファイル一式を
ダウンロードします.
② ダウンロードフォルダ中の ~/Downloads/math-comp-master/ にソースファイルが展
開されます.
③ emacs ~/.bash_profile で, CoqIDEのcoqcを使えるようにPATHの設定をします.
ターミナルで新しいウィンドウを開き, bash を起動し, CoqIDEのcoqcが呼べるか確
認します.
④ math-compをコンパイルします.(少し時間がかかります!)
⑤ math-compをインストールします.
② MathComp (形式数学理論ライブラリ) (続き)
5
アプリケーションフォルダの CoqIDE_8.11をダブルクリックすると
MathCompがインストールされたCoqIDEが立ち上がります.
① Ssrefrectライブラリが読めることを確認します.
② MathCompのdivライブラリが読めることを確認します.
③ divライブラリ中の余り(%%)と商(%/)演算を確認します.
④ 答の確認
式の実行
Coqによる命題論理の証明 (1)
6
ド・モルガンの法則 (¬ P ∨ ¬ Q) → ¬ (P ∧ Q) の証明.
(注意.) Coqでは論理記号を半角記号で入力するので対応は覚えておくこと!
証明の過程では, 仮定と証明すべき式が,
このウィンドウに表示される.
Coqによる命題論理の証明 (2)
7
ド・モルガンの法則 (¬ P ∨ ¬ Q) → ¬ (P ∧ Q) の証明.
証明手順を与えて, No more subgoals. まで持っていければ終わり!
証明すべきものが残っていない. 証明終わりということ!
証明そのものではなく, どういう推論
規則を使うか戦略を記述して行く.
Coqによる命題論理の証明(3)
8
ド・モルガンの法則 (¬ P ∨ ¬ Q) → ¬ (P ∧ Q) の証明.
証明のやり直しは, Restart コマンドで行う.
実は, 命題論理式は, intuition という戦術で
1行で自動証明可能である!
9
ド・モルガンの法則の証明図と証明中の推論規則に対応する
Coq/Ssreflect コマンドの対応.
Cf. 定理証明支援系Coqについて(溝口佳寛(2015)).
https://www.slideshare.net/yoshihiromizoguchi/coq-52677439

More Related Content

What's hot

ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
MITSUNARI Shigeo
 
ホモトピー型理論入門
ホモトピー型理論入門ホモトピー型理論入門
ホモトピー型理論入門
k h
 
Coqチュートリアル
CoqチュートリアルCoqチュートリアル
Coqチュートリアル
Yoshihiro Mizoguchi
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
Yoshihiro Mizoguchi
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato
 
よくわかるCoqプログラミング
よくわかるCoqプログラミングよくわかるCoqプログラミング
よくわかるCoqプログラミング
Real_analysis
 
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
MITSUNARI Shigeo
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
MITSUNARI Shigeo
 
SlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行しますSlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行します
Moriwaka Kazuo
 
クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術
MITSUNARI Shigeo
 
圏論は、随伴が全て
圏論は、随伴が全て圏論は、随伴が全て
圏論は、随伴が全て
ohmori
 
自動定理証明の紹介
自動定理証明の紹介自動定理証明の紹介
自動定理証明の紹介
Masahiro Sakai
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
 
バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門
Riku Sakamoto
 
スペクトラル・クラスタリング
スペクトラル・クラスタリングスペクトラル・クラスタリング
スペクトラル・クラスタリング
Akira Miyazawa
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
鈴木 セシル
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
ts21
 
NumPy闇入門
NumPy闇入門NumPy闇入門
NumPy闇入門
Ryosuke Okuta
 

What's hot (20)

ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
 
ホモトピー型理論入門
ホモトピー型理論入門ホモトピー型理論入門
ホモトピー型理論入門
 
Coqチュートリアル
CoqチュートリアルCoqチュートリアル
Coqチュートリアル
 
圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド圏論のモナドとHaskellのモナド
圏論のモナドとHaskellのモナド
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
よくわかるCoqプログラミング
よくわかるCoqプログラミングよくわかるCoqプログラミング
よくわかるCoqプログラミング
 
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
 
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 
SlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行しますSlideShareをやめて Speaker Deckに移行します
SlideShareをやめて Speaker Deckに移行します
 
クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術クラウドを支えるこれからの暗号技術
クラウドを支えるこれからの暗号技術
 
圏論は、随伴が全て
圏論は、随伴が全て圏論は、随伴が全て
圏論は、随伴が全て
 
自動定理証明の紹介
自動定理証明の紹介自動定理証明の紹介
自動定理証明の紹介
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門バグ0の資産を積み上げるための証明駆動開発入門
バグ0の資産を積み上げるための証明駆動開発入門
 
スペクトラル・クラスタリング
スペクトラル・クラスタリングスペクトラル・クラスタリング
スペクトラル・クラスタリング
 
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
競プロでGo!
競プロでGo!競プロでGo!
競プロでGo!
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
 
NumPy闇入門
NumPy闇入門NumPy闇入門
NumPy闇入門
 

Similar to Homebrewによるソフトウェアの実装 (2)

NetBSD on Google Compute Engine
NetBSD on Google Compute EngineNetBSD on Google Compute Engine
NetBSD on Google Compute Engine
Ryo ONODERA
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!
Tomoaki Shimizu
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携
Tomoaki Shimizu
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
WebRTCConferenceJapan
 
SCCM を用いた OS 展開
SCCM を用いた OS 展開SCCM を用いた OS 展開
SCCM を用いた OS 展開
Yutaro Tamai
 
MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725
Masafumi Noguchi
 
RTミドルウエア講習会2015
RTミドルウエア講習会2015RTミドルウエア講習会2015
RTミドルウエア講習会2015
Yuki Suga
 
OpenCV2.2 Install Guide ver.0.5
OpenCV2.2 Install Guide ver.0.5OpenCV2.2 Install Guide ver.0.5
OpenCV2.2 Install Guide ver.0.5
Tsukasa Sugiura
 
Cloud from Scratch / ゼロからクラウド構築
Cloud from Scratch / ゼロからクラウド構築 Cloud from Scratch / ゼロからクラウド構築
Cloud from Scratch / ゼロからクラウド構築
Tokyo University of Science
 
Introduce build in shrinker
Introduce build in shrinkerIntroduce build in shrinker
Introduce build in shrinker
Daisuke Fuji
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Masahito Zembutsu
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
Hiroaki_UKAJI
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
Masaya Aoyama
 
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島
Tomoaki Shimizu
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門
Yuki Suga
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
de:code 2017
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
Kensuke Maeda
 

Similar to Homebrewによるソフトウェアの実装 (2) (20)

NetBSD on Google Compute Engine
NetBSD on Google Compute EngineNetBSD on Google Compute Engine
NetBSD on Google Compute Engine
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!
 
cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
 
SCCM を用いた OS 展開
SCCM を用いた OS 展開SCCM を用いた OS 展開
SCCM を用いた OS 展開
 
MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725
 
RTミドルウエア講習会2015
RTミドルウエア講習会2015RTミドルウエア講習会2015
RTミドルウエア講習会2015
 
OpenCV2.2 Install Guide ver.0.5
OpenCV2.2 Install Guide ver.0.5OpenCV2.2 Install Guide ver.0.5
OpenCV2.2 Install Guide ver.0.5
 
Cloud from Scratch / ゼロからクラウド構築
Cloud from Scratch / ゼロからクラウド構築 Cloud from Scratch / ゼロからクラウド構築
Cloud from Scratch / ゼロからクラウド構築
 
Introduce build in shrinker
Introduce build in shrinkerIntroduce build in shrinker
Introduce build in shrinker
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
CI/CD Pipeline を考える 〜KubeCon 2017 + CyberAgent の最大公倍数〜
 
Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島Cocos2d-x公開講座 in 鹿児島
Cocos2d-x公開講座 in 鹿児島
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門
 
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
[TL10] Azure IaaS 構築・運用・管理の専門家が語る DevTest Labs ~高速・費用無駄ナシ・簡単管理を実現する開発・テスト環境の構築~
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
 

More from Yoshihiro Mizoguchi

Amazon AWSの使い方
Amazon AWSの使い方Amazon AWSの使い方
Amazon AWSの使い方
Yoshihiro Mizoguchi
 
ShareLaTeXの使い方
ShareLaTeXの使い方ShareLaTeXの使い方
ShareLaTeXの使い方
Yoshihiro Mizoguchi
 
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...
Yoshihiro Mizoguchi
 
Theory of Relational Calculus and its Formalization
Theory of Relational Calculus and its FormalizationTheory of Relational Calculus and its Formalization
Theory of Relational Calculus and its Formalization
Yoshihiro Mizoguchi
 
数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解く数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解く
Yoshihiro Mizoguchi
 
Verification of a brick wang tiling algorithm
Verification of a brick wang tiling algorithmVerification of a brick wang tiling algorithm
Verification of a brick wang tiling algorithm
Yoshihiro Mizoguchi
 
A Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational CalculusA Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational Calculus
Yoshihiro Mizoguchi
 
Algebras for programming languages
Algebras for programming languagesAlgebras for programming languages
Algebras for programming languages
Yoshihiro Mizoguchi
 
Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明
Yoshihiro Mizoguchi
 
Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法
Yoshihiro Mizoguchi
 
有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明について有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明について
Yoshihiro Mizoguchi
 
計算可能実数とは
計算可能実数とは計算可能実数とは
計算可能実数とは
Yoshihiro Mizoguchi
 
複素数・四元数と図形の回転
複素数・四元数と図形の回転複素数・四元数と図形の回転
複素数・四元数と図形の回転
Yoshihiro Mizoguchi
 
グラフデータ構造と5色定理
グラフデータ構造と5色定理グラフデータ構造と5色定理
グラフデータ構造と5色定理
Yoshihiro Mizoguchi
 
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Yoshihiro Mizoguchi
 
行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術
Yoshihiro Mizoguchi
 
Generalization of Compositons of Cellular Automata on Groups
Generalization of Compositons of Cellular Automata on GroupsGeneralization of Compositons of Cellular Automata on Groups
Generalization of Compositons of Cellular Automata on GroupsYoshihiro Mizoguchi
 

More from Yoshihiro Mizoguchi (19)

Amazon AWSの使い方
Amazon AWSの使い方Amazon AWSの使い方
Amazon AWSの使い方
 
ShareLaTeXの使い方
ShareLaTeXの使い方ShareLaTeXの使い方
ShareLaTeXの使い方
 
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...Symbolic Computations in Conformal Geometric Algebra for Three Dimensional  O...
Symbolic Computations in Conformal Geometric Algebra for Three Dimensional O...
 
Theory of Relational Calculus and its Formalization
Theory of Relational Calculus and its FormalizationTheory of Relational Calculus and its Formalization
Theory of Relational Calculus and its Formalization
 
数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解く数式処理ソフトMathematicaで数学の問題を解く
数式処理ソフトMathematicaで数学の問題を解く
 
Verification of a brick wang tiling algorithm
Verification of a brick wang tiling algorithmVerification of a brick wang tiling algorithm
Verification of a brick wang tiling algorithm
 
A Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational CalculusA Coq Library for the Theory of Relational Calculus
A Coq Library for the Theory of Relational Calculus
 
Algebras for programming languages
Algebras for programming languagesAlgebras for programming languages
Algebras for programming languages
 
Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明Coq関係計算ライブラリの開発と写像の性質の証明
Coq関係計算ライブラリの開発と写像の性質の証明
 
Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法Mac bookでwebサーバーを起動する方法
Mac bookでwebサーバーを起動する方法
 
有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明について有限オートマトンとスティッカー系に関するCoqによる形式証明について
有限オートマトンとスティッカー系に関するCoqによる形式証明について
 
計算可能実数とは
計算可能実数とは計算可能実数とは
計算可能実数とは
 
複素数・四元数と図形の回転
複素数・四元数と図形の回転複素数・四元数と図形の回転
複素数・四元数と図形の回転
 
グラフデータ構造と5色定理
グラフデータ構造と5色定理グラフデータ構造と5色定理
グラフデータ構造と5色定理
 
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
Graph partitioning and characteristic polynomials of Laplacian matrics of Roa...
 
行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術行列計算を利用したデータ解析技術
行列計算を利用したデータ解析技術
 
Theory of Relations (2)
Theory of Relations (2)Theory of Relations (2)
Theory of Relations (2)
 
Generalization of Compositons of Cellular Automata on Groups
Generalization of Compositons of Cellular Automata on GroupsGeneralization of Compositons of Cellular Automata on Groups
Generalization of Compositons of Cellular Automata on Groups
 
Theory of Relations (1)
Theory of Relations (1)Theory of Relations (1)
Theory of Relations (1)
 

Homebrewによるソフトウェアの実装 (2)

  • 1. Homebrewによるソフトウェアの実装(2) -- Mac OS 10.15 (Catalina)用 -- 溝 ⼝ 佳 寛 九州⼤学マス・フォア・インダストリ研究所 2020年5⽉19⽇ (Ver.2) ① CoqIDE (Coq定理証明支援システム) https://coq.inria.fr/ SSReflect (SSReflect証明戦術ライブラリ) ② MathComp (形式数学理論ライブラリ) https://github.com/math-comp/math-comp
  • 2. ① CoqIDE (Coq定理証明支援システム) 2 CoqIDEのインストールは brew cask install coqide で行います. /Applications/CoqIDE_8.11.app が実装されますが, そのままクリックしても起動出来ません. [システム環境設定]→[セキュリティとプライバシー]でCoqIDEのブロックを解除します. アプリケーションフォルダ の CoqIDE_8.11をダブルク リックするとCoqIDEが立ち 上がります. ② 式の入力 1+1を計算したい! ③ 式の実行 ④ 結果の確認 システム環境設定 ↑パスワードでロック解除 ① CoqIDEの起動
  • 3. ② MathComp (形式数学理論ライブラリ) [旧] 3 MathCompのインストールは brew install mathcomp で行います. SsreflectやMathCompのライブラリを使った証明が行えます. Ssreflectの読み込みは ① Require Import ssreflect. で行います. MathCompのライブラリは, From mathcomp Require Import から行います. 例えば, div ライブラリのインポートは, ② From mathcomp Require Import div. で行います. これが, どうもうまく いきません.(2019/5/18) ※ /usr/local/Cellar/math-comp/1.10.0_3/lib/coq/user-contrib/mathcomp に インストールされますが, /usr/local/lib/coq/user-contrib や, /Applications/CoqIDE_8.11.1.app/Contents/Resources/lib/coq/user-contrib/ とつながりません!!
  • 4. ② MathComp (形式数学理論ライブラリ) [新] 4 MathCompのインストールは, ソースファイルをダウロードして, 自分でコンパイルします. ① https://github.com/math-comp/math-comp から, Download ZIP でソースファイル一式を ダウンロードします. ② ダウンロードフォルダ中の ~/Downloads/math-comp-master/ にソースファイルが展 開されます. ③ emacs ~/.bash_profile で, CoqIDEのcoqcを使えるようにPATHの設定をします. ターミナルで新しいウィンドウを開き, bash を起動し, CoqIDEのcoqcが呼べるか確 認します. ④ math-compをコンパイルします.(少し時間がかかります!) ⑤ math-compをインストールします.
  • 5. ② MathComp (形式数学理論ライブラリ) (続き) 5 アプリケーションフォルダの CoqIDE_8.11をダブルクリックすると MathCompがインストールされたCoqIDEが立ち上がります. ① Ssrefrectライブラリが読めることを確認します. ② MathCompのdivライブラリが読めることを確認します. ③ divライブラリ中の余り(%%)と商(%/)演算を確認します. ④ 答の確認 式の実行
  • 6. Coqによる命題論理の証明 (1) 6 ド・モルガンの法則 (¬ P ∨ ¬ Q) → ¬ (P ∧ Q) の証明. (注意.) Coqでは論理記号を半角記号で入力するので対応は覚えておくこと! 証明の過程では, 仮定と証明すべき式が, このウィンドウに表示される.
  • 7. Coqによる命題論理の証明 (2) 7 ド・モルガンの法則 (¬ P ∨ ¬ Q) → ¬ (P ∧ Q) の証明. 証明手順を与えて, No more subgoals. まで持っていければ終わり! 証明すべきものが残っていない. 証明終わりということ! 証明そのものではなく, どういう推論 規則を使うか戦略を記述して行く.
  • 8. Coqによる命題論理の証明(3) 8 ド・モルガンの法則 (¬ P ∨ ¬ Q) → ¬ (P ∧ Q) の証明. 証明のやり直しは, Restart コマンドで行う. 実は, 命題論理式は, intuition という戦術で 1行で自動証明可能である!