Commit f8efeaaf by Ralf Jung

### derive rules for inv and own for view shifts; change notation for view shifts

parent b902393a
 ... @@ -37,7 +37,7 @@ Proof. ... @@ -37,7 +37,7 @@ Proof. by rewrite -wp_value -pvs_intro; apply const_intro. by rewrite -wp_value -pvs_intro; apply const_intro. Qed. Qed. Lemma ht_vs E P P' Q Q' e : Lemma ht_vs E P P' Q Q' e : (P >{E}> P' ∧ {{ P' }} e @ E {{ Q' }} ∧ ∀ v, Q' v >{E}> Q v) (P ={E}=> P' ∧ {{ P' }} e @ E {{ Q' }} ∧ ∀ v, Q' v ={E}=> Q v) ⊑ {{ P }} e @ E {{ Q }}. ⊑ {{ P }} e @ E {{ Q }}. Proof. Proof. apply (always_intro' _ _), impl_intro_l. apply (always_intro' _ _), impl_intro_l. ... @@ -48,7 +48,7 @@ Proof. ... @@ -48,7 +48,7 @@ Proof. Qed. Qed. Lemma ht_atomic E1 E2 P P' Q Q' e : Lemma ht_atomic E1 E2 P P' Q Q' e : E2 ⊆ E1 → atomic e → E2 ⊆ E1 → atomic e → (P >{E1,E2}> P' ∧ {{ P' }} e @ E2 {{ Q' }} ∧ ∀ v, Q' v >{E2,E1}> Q v) (P ={E1,E2}=> P' ∧ {{ P' }} e @ E2 {{ Q' }} ∧ ∀ v, Q' v ={E2,E1}=> Q v) ⊑ {{ P }} e @ E1 {{ Q }}. ⊑ {{ P }} e @ E1 {{ Q }}. Proof. Proof. intros ??; apply (always_intro' _ _), impl_intro_l. intros ??; apply (always_intro' _ _), impl_intro_l. ... @@ -98,4 +98,4 @@ Proof. ... @@ -98,4 +98,4 @@ Proof. rewrite (commutative _ _ (▷ R)%I); setoid_rewrite (commutative _ _ R). rewrite (commutative _ _ (▷ R)%I); setoid_rewrite (commutative _ _ R). apply ht_frame_later_l. apply ht_frame_later_l. Qed. Qed. End hoare. End hoare. \ No newline at end of file
 ... @@ -20,8 +20,8 @@ Lemma ht_lift_step E1 E2 ... @@ -20,8 +20,8 @@ Lemma ht_lift_step E1 E2 E1 ⊆ E2 → to_val e1 = None → E1 ⊆ E2 → to_val e1 = None → reducible e1 σ1 → reducible e1 σ1 → (∀ e2 σ2 ef, prim_step e1 σ1 e2 σ2 ef → φ e2 σ2 ef) → (∀ e2 σ2 ef, prim_step e1 σ1 e2 σ2 ef → φ e2 σ2 ef) → (P >{E2,E1}> (ownP σ1 ★ ▷ P') ∧ ∀ e2 σ2 ef, (P ={E2,E1}=> (ownP σ1 ★ ▷ P') ∧ ∀ e2 σ2 ef, (■ φ e2 σ2 ef ★ ownP σ2 ★ P') >{E1,E2}> (Q1 e2 σ2 ef ★ Q2 e2 σ2 ef) ∧ (■ φ e2 σ2 ef ★ ownP σ2 ★ P') ={E1,E2}=> (Q1 e2 σ2 ef ★ Q2 e2 σ2 ef) ∧ {{ Q1 e2 σ2 ef }} e2 @ E2 {{ R }} ∧ {{ Q1 e2 σ2 ef }} e2 @ E2 {{ R }} ∧ {{ Q2 e2 σ2 ef }} ef ?@ coPset_all {{ λ _, True }}) {{ Q2 e2 σ2 ef }} ef ?@ coPset_all {{ λ _, True }}) ⊑ {{ P }} e1 @ E2 {{ R }}. ⊑ {{ P }} e1 @ E2 {{ R }}. ... ...