interactive proofs in higher order concurrent separation
play

Interactive Proofs in Higher-Order Concurrent Separation Logic - PowerPoint PPT Presentation

Interactive Proofs in Higher-Order Concurrent Separation Logic Robbert Krebbers 1 Amin Timany 2 Lars Birkedal 3 1 Delft University of Technology, The Netherlands 2 imec-Distrinet, KU Leuven, Belgium 3 Aarhus University, Denmark January 18, 2017 @


  1. Interactive Proofs in Higher-Order Concurrent Separation Logic Robbert Krebbers 1 Amin Timany 2 Lars Birkedal 3 1 Delft University of Technology, The Netherlands 2 imec-Distrinet, KU Leuven, Belgium 3 Aarhus University, Denmark January 18, 2017 @ POPL, Paris, France 1

  2. Goal of this talk Many POPL papers about complicated program logics come with mechanized soundness proofs, but how to reason in these logics? Goal: reasoning in an object logic in the same style as reasoning in Coq 2

  3. Goal of this talk Many POPL papers about complicated program logics come with mechanized soundness proofs, but how to reason in these logics? Goal: reasoning in an object logic in the same style as reasoning in Coq 2

  4. Goal of this talk Many POPL papers about complicated program logics come with mechanized soundness proofs, but how to reason in these logics? Goal: reasoning in an object logic in the same style as reasoning in Coq How? ◮ Extend Coq with (spatial and non-spatial) named proof contexts for an object logic ◮ Tactics for introduction and elimination of all connectives of the object logic ◮ Entirely implemented using reflection, type classes and Ltac (no OCaml plugin needed) 2

  5. Goal of this talk Many POPL papers about complicated program logics come with mechanized soundness proofs, but how to reason in these logics? Goal: reasoning in Iris in the same style as reasoning in Coq How? ◮ Extend Coq with (spatial and non-spatial) named proof contexts for Iris ◮ Tactics for introduction and elimination of all connectives of Iris ◮ Entirely implemented using reflection, type classes and Ltac (no OCaml plugin needed) Iris : language independent higher-order separation logic for modular reasoning about fine-grained concurrency in Coq 2

  6. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type P , R : iProp Ψ : A → iProp (1/1) P ∗ ( ∃ a : A , Ψ a ) ∗ R − ∗ ∃ a : A , Ψ a ∗ P 3

  7. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp Ψ : A → iProp (1/1) P ∗ ( ∃ a : A , Ψ a ) ∗ R − ∗ ∃ a : A , Ψ a ∗ P 3

  8. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp Ψ : A → iProp (1/1) "HP" : P "H Ψ " : ∃ a : A , Ψ a "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ ∃ a : A , Ψ a ∗ P 3

  9. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp (1/1) "HP" : P "H Ψ " : ∃ a : A , Ψ a "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ ∃ a : A , Ψ a ∗ P 3

  10. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp x : A (1/1) "HP" : P "H Ψ " : Ψ x "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ ∃ a : A , Ψ a ∗ P 3

  11. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A (1/1) "HP" : P "H Ψ " : Ψ x "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ ∃ a : A , Ψ a ∗ P 3

  12. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A (1/1) "HP" : P "H Ψ " : Ψ x "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ Ψ x ∗ P 3

  13. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A iSplitL "H Ψ ". (1/1) "HP" : P "H Ψ " : Ψ x "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ Ψ x ∗ P 3

  14. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 2 subgoals P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A iSplitL "H Ψ ". (1/2) "H Ψ " : Ψ x − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ Ψ x (2/2) "HP" : P "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ P 3

  15. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A iSplitL "H Ψ ". (1/1) - "H Ψ " : Ψ x − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ Ψ x 3

  16. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A iSplitL "H Ψ ". (1/1) - iAssumption. "H Ψ " : Ψ x − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ Ψ x 3

  17. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : This subproof is complete , but there are some unfocused goals : P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . Proof . (1/1) iIntros "[HP [H Ψ HR]]". "HP" : P iDestruct "H Ψ " as (x) "H Ψ ". "HR" : R iExists x. − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ iSplitL "H Ψ ". P - iAssumption. 3

  18. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A iSplitL "H Ψ ". (1/1) - iAssumption. "HP" : P - "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ P 3

  19. Iris Proof Mode (IPM) demo Lemma and exist sep { A } P R (Ψ: A → iProp ) : 1 subgoal P ∗ ( ∃ a , Ψ a ) ∗ R − ∗ ∃ a , Ψ a ∗ P . M : ucmraT Proof . A : Type iIntros "[HP [H Ψ HR]]". P , R : iProp iDestruct "H Ψ " as (x) "H Ψ ". Ψ : A → iProp iExists x. x : A iSplitL "H Ψ ". (1/1) - iAssumption. "HP" : P - iAssumption. "HR" : R − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − − ∗ P 3

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend