Skip to content
Snippets Groups Projects
Commit 01d2e142 authored by Ralf Jung's avatar Ralf Jung
Browse files

review feedback

parent 97b9de6c
No related branches found
No related tags found
No related merge requests found
(** This file extens the HeapLang program logic with some derived laws about (** This file extends the HeapLang program logic with some derived laws (not
arrays and prophecies. using the lifting lemmas) about arrays and prophecies.
For more array operations, see [heap_lang.lib.array]. For utility functions on arrays (e.g., freeing/copying an array), see
*) [heap_lang.lib.array]. *)
From stdpp Require Import fin_maps. From stdpp Require Import fin_maps.
From iris.bi Require Import lib.fractional. From iris.bi Require Import lib.fractional.
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
From iris.program_logic Require Import ectx_lifting.
From iris.heap_lang Require Export primitive_laws. From iris.heap_lang Require Export primitive_laws.
From iris.heap_lang Require Import tactics notation. From iris.heap_lang Require Import tactics notation.
Set Default Proof Using "Type". Set Default Proof Using "Type".
...@@ -333,7 +332,7 @@ Lemma wp_resolve_proph s E (p : proph_id) (pvs : list (val * val)) v : ...@@ -333,7 +332,7 @@ Lemma wp_resolve_proph s E (p : proph_id) (pvs : list (val * val)) v :
{{{ pvs', RET (LitV LitUnit); pvs = (LitV LitUnit, v)::pvs' proph p pvs' }}}. {{{ pvs', RET (LitV LitUnit); pvs = (LitV LitUnit, v)::pvs' proph p pvs' }}}.
Proof. Proof.
iIntros (Φ) "Hp HΦ". iApply (wp_resolve with "Hp"); first done. iIntros (Φ) "Hp HΦ". iApply (wp_resolve with "Hp"); first done.
iApply wp_pure_step_later=> //=. iApply wp_value. iApply lifting.wp_pure_step_later=> //=. iApply wp_value.
iIntros "!>" (vs') "HEq Hp". iApply "HΦ". iFrame. iIntros "!>" (vs') "HEq Hp". iApply "HΦ". iFrame.
Qed. Qed.
......
(** This file proves the basic laws of the HeapLang program logic. *) (** This file proves the basic laws of the HeapLang program logic by applying
the Iris lifting lemmas. *)
From stdpp Require Import fin_maps. From stdpp Require Import fin_maps.
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
......
(** The "lifting lemmas" in this file serve to lift the rules of the operational
semantics to the program logic. *)
From iris.proofmode Require Import tactics. From iris.proofmode Require Import tactics.
From iris.program_logic Require Export weakestpre. From iris.program_logic Require Export weakestpre.
Set Default Proof Using "Type". Set Default Proof Using "Type".
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment