SlideShare a Scribd company logo
Coq GC

  id:mzp




    1
•        :

    • http://twitter.com/mzp
    • http://d.hatena.ne.jp/mzp/
•        :

•                              Coq

                        2
Coq



      3
Coq
•
    •

•                      OCaml   Haskell



•       http://coq.inria.fr

                   4
Coq

• 1. Coq
• 2.       ”       ”

• 3.               OCaml   Haskell




               5
GC



     6
“            ”GC     ?
•       GC   ”       ”



•


                 7
1.
Definition mark_phase {A : Type} (dec : x_dec A) (m : Mem) :=
    mkMem A (nodes m)
            (roots m)                                           closuresM :
            (frees m)
            (fun x => if In_dec dec x (closuresM dec m) then
                         Marked
                      else                                                 Marked
                         Unmarked)
            (next m).                                                    Unmarked

Definition sweep_phase {A : Type} (dec : x_dec A) (m : Mem) : Mem :=
  let
     unmarked := filter_dec
                  (fun n => mark_dec (GC.marker m n) Unmarked) @@
                  nodes m
  in
     mkMem A (nodes m)
             (roots m)
             (union dec (frees m) unmarked)                       Unmarked
             (fun _ => Unmarked)
             (next m).

Definition gc {A : Type} (dec : x_dec A) (m : Mem) : Mem :=       gc mark_phase
  sweep_phase dec (mark_phase dec m).                             sweep_phase

                                            8
2.
                                                              Safety:
Lemma SweepPhase_Safety : forall A (dec : x_dec A) (m1 m2 :
Mem (A:=A)),
  SweepPhase dec m1 m2 -> Safety dec m1 ->
  MarksAll dec m1 -> Safety dec m2.                           Sweep               Safety
Proof.
(snip)
Qed.

Lemma MarkPhase_Safety : forall A (dec : x_dec A) (m1 m2 : Mem
(A:=A)),
  MarkPhase dec m1 m2 -> Safety dec m1 -> Safety dec m2 / Mark                  Safety
MarksAll dec m2.
Proof.
(snip)
Qed.

Theorem GC_Safety: forall A (dec : x_dec A) (m1 m2 : Mem
(A:=A)),                                                      GC        Safety
  GC dec m1 m2 -> Safety dec m1 -> Safety dec m2.
Proof.
(snip)
Qed.




                                          9
3.




          c b




     10
...
• github
 • http://github.com/mzp/GC




                   11

More Related Content

What's hot

4.5 tan and cot.ppt worked
4.5   tan and cot.ppt worked4.5   tan and cot.ppt worked
4.5 tan and cot.ppt worked
Jonna Ramsey
 
Graphing a line
Graphing a lineGraphing a line
Graphing a line
cathyanns
 
Den5200 ps1
Den5200 ps1Den5200 ps1
Den5200 ps1jogerpow
 
Identidades trigonometricas
Identidades trigonometricasIdentidades trigonometricas
Identidades trigonometricasNumael Sanchez
 
情報学特論#01
情報学特論#01情報学特論#01
情報学特論#01Kenta Murata
 
Graphing day 1 worked
Graphing day 1 workedGraphing day 1 worked
Graphing day 1 worked
Jonna Ramsey
 
Resolución del-examen-de-la-práctica-de-métodos-numéricos
Resolución del-examen-de-la-práctica-de-métodos-numéricosResolución del-examen-de-la-práctica-de-métodos-numéricos
Resolución del-examen-de-la-práctica-de-métodos-numéricos
Carlos Cosi Mamani
 
7th PreAlg - L56--Feb7
7th PreAlg - L56--Feb77th PreAlg - L56--Feb7
7th PreAlg - L56--Feb7jdurst65
 
Escola naval 2016
Escola naval 2016Escola naval 2016
Escola naval 2016
KalculosOnline
 
ggplot2できれいなグラフ
ggplot2できれいなグラフggplot2できれいなグラフ
ggplot2できれいなグラフDaisuke Ichikawa
 
Formula List Math 1230
Formula List Math 1230Formula List Math 1230
Formula List Math 1230
samhui48
 
Time complexity
Time complexityTime complexity
Time complexity
LAKSHMITHARUN PONNAM
 
Logarit 4-21
Logarit 4-21Logarit 4-21
Logarit 4-21
adrian alvarez
 
Funções trigonométricas
Funções trigonométricasFunções trigonométricas
Funções trigonométricasPedro Dias
 
Answer to selected_miscellaneous_exercises
Answer to selected_miscellaneous_exercisesAnswer to selected_miscellaneous_exercises
Answer to selected_miscellaneous_exercisespaufong
 
2.9
2.92.9

What's hot (20)

4.5 tan and cot.ppt worked
4.5   tan and cot.ppt worked4.5   tan and cot.ppt worked
4.5 tan and cot.ppt worked
 
Graphing a line
Graphing a lineGraphing a line
Graphing a line
 
Den5200 ps1
Den5200 ps1Den5200 ps1
Den5200 ps1
 
Identidades trigonometricas
Identidades trigonometricasIdentidades trigonometricas
Identidades trigonometricas
 
情報学特論#01
情報学特論#01情報学特論#01
情報学特論#01
 
Graphing day 1 worked
Graphing day 1 workedGraphing day 1 worked
Graphing day 1 worked
 
Ejercicio1
Ejercicio1Ejercicio1
Ejercicio1
 
Resolución del-examen-de-la-práctica-de-métodos-numéricos
Resolución del-examen-de-la-práctica-de-métodos-numéricosResolución del-examen-de-la-práctica-de-métodos-numéricos
Resolución del-examen-de-la-práctica-de-métodos-numéricos
 
7th PreAlg - L56--Feb7
7th PreAlg - L56--Feb77th PreAlg - L56--Feb7
7th PreAlg - L56--Feb7
 
Htdp27.key
Htdp27.keyHtdp27.key
Htdp27.key
 
June 2011 1-2
June 2011 1-2June 2011 1-2
June 2011 1-2
 
Escola naval 2016
Escola naval 2016Escola naval 2016
Escola naval 2016
 
Day 3 examples
Day 3 examplesDay 3 examples
Day 3 examples
 
ggplot2できれいなグラフ
ggplot2できれいなグラフggplot2できれいなグラフ
ggplot2できれいなグラフ
 
Formula List Math 1230
Formula List Math 1230Formula List Math 1230
Formula List Math 1230
 
Time complexity
Time complexityTime complexity
Time complexity
 
Logarit 4-21
Logarit 4-21Logarit 4-21
Logarit 4-21
 
Funções trigonométricas
Funções trigonométricasFunções trigonométricas
Funções trigonométricas
 
Answer to selected_miscellaneous_exercises
Answer to selected_miscellaneous_exercisesAnswer to selected_miscellaneous_exercises
Answer to selected_miscellaneous_exercises
 
2.9
2.92.9
2.9
 

Viewers also liked

全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版
全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版
全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版
Rikkyo University
 
証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議Hiroki Mizuno
 
Survey around Semantics for Programming Languages, and Machine Proof using Coq
Survey around Semantics for Programming Languages, and Machine Proof using CoqSurvey around Semantics for Programming Languages, and Machine Proof using Coq
Survey around Semantics for Programming Languages, and Machine Proof using Coq
bellbind
 
CoqによるMsgPackの証明
CoqによるMsgPackの証明CoqによるMsgPackの証明
CoqによるMsgPackの証明
Hiroki Mizuno
 
書くネタがCoqしかない
書くネタがCoqしかない書くネタがCoqしかない
書くネタがCoqしかない
Masaki Hara
 

Viewers also liked (6)

全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版
全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版
全てのエンジニアのためのWeb標準技術とのつきあい方 OSC名古屋 2012版
 
Coq for beginners
Coq for beginnersCoq for beginners
Coq for beginners
 
証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議証明駆動開発のたのしみ@名古屋reject会議
証明駆動開発のたのしみ@名古屋reject会議
 
Survey around Semantics for Programming Languages, and Machine Proof using Coq
Survey around Semantics for Programming Languages, and Machine Proof using CoqSurvey around Semantics for Programming Languages, and Machine Proof using Coq
Survey around Semantics for Programming Languages, and Machine Proof using Coq
 
CoqによるMsgPackの証明
CoqによるMsgPackの証明CoqによるMsgPackの証明
CoqによるMsgPackの証明
 
書くネタがCoqしかない
書くネタがCoqしかない書くネタがCoqしかない
書くネタがCoqしかない
 

Similar to CoqでGCの証明をしてみたよ(LT)

Proove Mark&Sweep GC with Coq
Proove Mark&Sweep GC with CoqProove Mark&Sweep GC with Coq
Proove Mark&Sweep GC with CoqHiroki Mizuno
 
Decorated Attribute Grammars (CC 2009)
Decorated Attribute Grammars (CC 2009)Decorated Attribute Grammars (CC 2009)
Decorated Attribute Grammars (CC 2009)
lennartkats
 
DAA - UNIT 4 - Engineering.pptx
DAA - UNIT 4 - Engineering.pptxDAA - UNIT 4 - Engineering.pptx
DAA - UNIT 4 - Engineering.pptx
vaishnavi339314
 
rsa.ppt
rsa.pptrsa.ppt
Signyourd digital signature certificate provider
Signyourd   digital signature certificate providerSignyourd   digital signature certificate provider
Signyourd digital signature certificate provider
Kishankant Yadav
 
Rsa in CTF
Rsa in CTFRsa in CTF
Rsa in CTF
SoL ymx
 
mat lab introduction and basics to learn
mat lab introduction and basics to learnmat lab introduction and basics to learn
mat lab introduction and basics to learn
pavan373
 
Public Key Cryptography
Public Key CryptographyPublic Key Cryptography
Public Key Cryptography
Abhijit Mondal
 
"Mesh of Periodic Minimal Surfaces in CGAL."
"Mesh of Periodic Minimal Surfaces in CGAL.""Mesh of Periodic Minimal Surfaces in CGAL."
"Mesh of Periodic Minimal Surfaces in CGAL."
Vissarion Fisikopoulos
 
06 Recursion in C.pptx
06 Recursion in C.pptx06 Recursion in C.pptx
06 Recursion in C.pptx
MouDhara1
 
Singlevaropt
SinglevaroptSinglevaropt
Singlevaropt
sheetslibrary
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
AMR koura
 
Math::Category
Math::CategoryMath::Category
Math::Category
Masahiro Honma
 

Similar to CoqでGCの証明をしてみたよ(LT) (20)

Proove Mark&Sweep GC with Coq
Proove Mark&Sweep GC with CoqProove Mark&Sweep GC with Coq
Proove Mark&Sweep GC with Coq
 
CoqUn2010
CoqUn2010CoqUn2010
CoqUn2010
 
Decorated Attribute Grammars (CC 2009)
Decorated Attribute Grammars (CC 2009)Decorated Attribute Grammars (CC 2009)
Decorated Attribute Grammars (CC 2009)
 
Crypto lecture PDF
Crypto lecture PDFCrypto lecture PDF
Crypto lecture PDF
 
DAA - UNIT 4 - Engineering.pptx
DAA - UNIT 4 - Engineering.pptxDAA - UNIT 4 - Engineering.pptx
DAA - UNIT 4 - Engineering.pptx
 
rsa.ppt
rsa.pptrsa.ppt
rsa.ppt
 
Signyourd digital signature certificate provider
Signyourd   digital signature certificate providerSignyourd   digital signature certificate provider
Signyourd digital signature certificate provider
 
rsa.ppt
rsa.pptrsa.ppt
rsa.ppt
 
Rsa in CTF
Rsa in CTFRsa in CTF
Rsa in CTF
 
mat lab introduction and basics to learn
mat lab introduction and basics to learnmat lab introduction and basics to learn
mat lab introduction and basics to learn
 
Public Key Cryptography
Public Key CryptographyPublic Key Cryptography
Public Key Cryptography
 
"Mesh of Periodic Minimal Surfaces in CGAL."
"Mesh of Periodic Minimal Surfaces in CGAL.""Mesh of Periodic Minimal Surfaces in CGAL."
"Mesh of Periodic Minimal Surfaces in CGAL."
 
06 Recursion in C.pptx
06 Recursion in C.pptx06 Recursion in C.pptx
06 Recursion in C.pptx
 
Rsa
RsaRsa
Rsa
 
Intro to matlab
Intro to matlabIntro to matlab
Intro to matlab
 
Singlevaropt
SinglevaroptSinglevaropt
Singlevaropt
 
Rsa
RsaRsa
Rsa
 
Ecc2
Ecc2Ecc2
Ecc2
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
 
Math::Category
Math::CategoryMath::Category
Math::Category
 

More from Hiroki Mizuno

TypeSafe OSの試み
TypeSafe OSの試みTypeSafe OSの試み
TypeSafe OSの試みHiroki Mizuno
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法Hiroki Mizuno
 
#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書について#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書についてHiroki Mizuno
 
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性についてScala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Hiroki Mizuno
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Hiroki Mizuno
 
Darcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbcDarcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbc
Hiroki Mizuno
 
Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Hiroki Mizuno
 
「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)Hiroki Mizuno
 
20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会Hiroki Mizuno
 
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02Hiroki Mizuno
 
Coqによる証明駆動開発
Coqによる証明駆動開発Coqによる証明駆動開発
Coqによる証明駆動開発
Hiroki Mizuno
 
NGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへNGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへHiroki Mizuno
 
From Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへFrom Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへ
Hiroki Mizuno
 
OCamlAPISearchの紹介
OCamlAPISearchの紹介OCamlAPISearchの紹介
OCamlAPISearchの紹介Hiroki Mizuno
 

More from Hiroki Mizuno (18)

TypeSafe OSの試み
TypeSafe OSの試みTypeSafe OSの試み
TypeSafe OSの試み
 
OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法OCamlでWebアプリケーションを作るn個の方法
OCamlでWebアプリケーションを作るn個の方法
 
#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書について#NGK2012B Excelによる設計書について
#NGK2012B Excelによる設計書について
 
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性についてScala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
Scala基礎勉強会: Featherweight Scalaの紹介および型付け規則の決定可能性について
 
Java基礎
Java基礎Java基礎
Java基礎
 
Sml#探検隊
Sml#探検隊Sml#探検隊
Sml#探検隊
 
どこでもCoq
どこでもCoqどこでもCoq
どこでもCoq
 
Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋Coq for Moblie Phone @ ML名古屋
Coq for Moblie Phone @ ML名古屋
 
Darcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbcDarcs紹介@20120423-scmbc
Darcs紹介@20120423-scmbc
 
Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力Gallinaによる証明駆動開発の魅力
Gallinaによる証明駆動開発の魅力
 
「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)「Frama-Cによるソースコード検証」 (mzp)
「Frama-Cによるソースコード検証」 (mzp)
 
20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会20110424 action scriptを使わないflash勉強会
20110424 action scriptを使わないflash勉強会
 
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02Coq to Rubyによる証明駆動開発@名古屋ruby会議02
Coq to Rubyによる証明駆動開発@名古屋ruby会議02
 
Coqによる証明駆動開発
Coqによる証明駆動開発Coqによる証明駆動開発
Coqによる証明駆動開発
 
NGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへNGK忘年会 2010 / CoqからRubyへ
NGK忘年会 2010 / CoqからRubyへ
 
From Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへFrom Coq to Ruby / CoqからRubyへ
From Coq to Ruby / CoqからRubyへ
 
SacalaZa #1
SacalaZa #1SacalaZa #1
SacalaZa #1
 
OCamlAPISearchの紹介
OCamlAPISearchの紹介OCamlAPISearchの紹介
OCamlAPISearchの紹介
 

Recently uploaded

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 

Recently uploaded (20)

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 

CoqでGCの証明をしてみたよ(LT)

  • 1. Coq GC id:mzp 1
  • 2. : • http://twitter.com/mzp • http://d.hatena.ne.jp/mzp/ • : • Coq 2
  • 3. Coq 3
  • 4. Coq • • • OCaml Haskell • http://coq.inria.fr 4
  • 5. Coq • 1. Coq • 2. ” ” • 3. OCaml Haskell 5
  • 6. GC 6
  • 7. ”GC ? • GC ” ” • 7
  • 8. 1. Definition mark_phase {A : Type} (dec : x_dec A) (m : Mem) := mkMem A (nodes m) (roots m) closuresM : (frees m) (fun x => if In_dec dec x (closuresM dec m) then Marked else Marked Unmarked) (next m). Unmarked Definition sweep_phase {A : Type} (dec : x_dec A) (m : Mem) : Mem := let unmarked := filter_dec (fun n => mark_dec (GC.marker m n) Unmarked) @@ nodes m in mkMem A (nodes m) (roots m) (union dec (frees m) unmarked) Unmarked (fun _ => Unmarked) (next m). Definition gc {A : Type} (dec : x_dec A) (m : Mem) : Mem := gc mark_phase sweep_phase dec (mark_phase dec m). sweep_phase 8
  • 9. 2. Safety: Lemma SweepPhase_Safety : forall A (dec : x_dec A) (m1 m2 : Mem (A:=A)), SweepPhase dec m1 m2 -> Safety dec m1 -> MarksAll dec m1 -> Safety dec m2. Sweep Safety Proof. (snip) Qed. Lemma MarkPhase_Safety : forall A (dec : x_dec A) (m1 m2 : Mem (A:=A)), MarkPhase dec m1 m2 -> Safety dec m1 -> Safety dec m2 / Mark Safety MarksAll dec m2. Proof. (snip) Qed. Theorem GC_Safety: forall A (dec : x_dec A) (m1 m2 : Mem (A:=A)), GC Safety GC dec m1 m2 -> Safety dec m1 -> Safety dec m2. Proof. (snip) Qed. 9
  • 10. 3. c b 10
  • 11. ... • github • http://github.com/mzp/GC 11

Editor's Notes