Skip to content

Commit 50e55e1

Browse files
committed
qed wp_NewClient
1 parent 07816ed commit 50e55e1

File tree

1 file changed

+24
-8
lines changed

1 file changed

+24
-8
lines changed

src/program_proof/pav/client.v

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,11 @@ Record t :=
1212
uid: uid_ty;
1313
next_ver: ver_ty;
1414
next_epoch: epoch_ty;
15-
serv_γ: gname;
1615
serv_sig_pk: list w8;
1716
serv_vrf_pk: list w8;
1817
}.
1918
Global Instance eta : Settable _ :=
20-
settable! mk <γ; uid; next_ver; next_epoch; serv_γ; serv_sig_pk; serv_vrf_pk>.
19+
settable! mk <γ; uid; next_ver; next_epoch; serv_sig_pk; serv_vrf_pk>.
2120

2221
Section defs.
2322
Context `{!heapGS Σ, !pavG Σ}.
@@ -968,16 +967,33 @@ Proof.
968967
rewrite lookup_fmap in Hlook_final. simplify_eq/=. naive_solver.
969968
Qed.
970969

971-
Lemma wp_newClient (uid servAddr : w64) sl_servSigPk servSigPk (servVrfPk : loc) :
970+
Lemma wp_NewClient sl_serv_sig_pk sl_serv_vrf_pk (uid serv_addr : w64) (serv_sig_pk serv_vrf_pk : list w8) :
972971
{{{
973-
"#Hsl_servSigPk" ∷ own_slice_small sl_servSigPk byteT DfracDiscarded servSigPk
972+
"#Hsl_serv_sig_pk" ∷ own_slice_small sl_serv_sig_pk byteT DfracDiscarded serv_sig_pk ∗
973+
"#Hsl_serv_vrf_pk" ∷ own_slice_small sl_serv_vrf_pk byteT DfracDiscarded serv_vrf_pk
974974
}}}
975-
newClient #uid #servAddr (slice_val sl_servSigPk) #servVrfPk
975+
NewClient #uid #serv_addr (slice_val sl_serv_sig_pk) (slice_val sl_serv_vrf_pk)
976976
{{{
977-
ptr_cli cli_γ r1 r2, RET #ptr_cli;
978-
"Hown_cli" ∷ Client.own ptr_cli (Client.mk cli_γ uid (W64 0) (W64 0) r1 servSigPk r2)
977+
ptr_c γ, RET #ptr_c;
978+
"Hown_cli" ∷ Client.own ptr_c (Client.mk γ uid (W64 0) (W64 0) serv_sig_pk serv_vrf_pk)
979979
}}}.
980-
Proof. Admitted.
980+
Proof.
981+
iIntros (Φ) "H HΦ". iNamed "H". wp_rec.
982+
wp_apply wp_Dial. iIntros "*". iNamed 1.
983+
wp_apply (wp_VrfPublicKeyDecode with "[$Hsl_serv_vrf_pk]").
984+
iClear "Hsl_serv_vrf_pk". iIntros "*". iNamed 1.
985+
wp_apply wp_NewMap. iIntros "* Hown_sd_refs". wp_apply wp_fupd.
986+
wp_apply wp_allocStruct; [val_ty|]. iIntros "* H".
987+
iDestruct (struct_fields_split with "H") as "H". iNamed "H".
988+
iMod (struct_field_pointsto_persist with "uid") as "#uid".
989+
iMod (struct_field_pointsto_persist with "servCli") as "#servCli".
990+
iMod (struct_field_pointsto_persist with "servSigPk") as "#servSigPk".
991+
iMod (struct_field_pointsto_persist with "servVrfPk") as "#servVrfPk".
992+
iMod (struct_field_pointsto_persist with "seenDigs") as "#seenDigs".
993+
iMod (mono_list_own_alloc []) as (?) "[Hown_digs _]".
994+
iApply "HΦ". iFrame "∗#". iExists ∅. iModIntro.
995+
repeat try iSplit; naive_solver.
996+
Qed.
981997

982998
End wps.
983999

0 commit comments

Comments
 (0)