diff --git a/perm_incl.v b/perm_incl.v
index c0ae90228294a0418c7d7d391b94ad1971a4dc6b..f28a5847302ec66a0a0f6aede7ba6cac0d24a32a 100644
--- a/perm_incl.v
+++ b/perm_incl.v
@@ -107,7 +107,8 @@ Section props.
     iAssert (∃ q, [κ]{q})%I as "Htok". admit.
     iDestruct "Htok" as (q) "Htok".
     iVs (ty.(ty_share) _ lrustN with "Hown Htok") as "[Hown _]".
-    admit. set_solver. iVsIntro. iExists _. iSplit. done. done.
+    apply disjoint_union_l; solve_ndisj. set_solver. iVsIntro.
+    iExists _. iSplit. done. done.
   Admitted.
 
   Lemma perm_split_own_prod tyl (q : Qp) (ql : list Qp) v :
@@ -144,7 +145,7 @@ Section props.
       pose (q' := mk_Qp _ Hq').
       assert (q = q0 + q')%Qp as -> by rewrite Qp_eq -Hq //. clear Hq.
       injection Hlen. clear Hlen. intro Hlen.
-      simpl in IH|-*. rewrite -(IH q') //. split; iIntros (tid) "H".
+      simpl in IH|-*. rewrite -(IH q') //. clear IH. split; iIntros (tid) "H".
       + iDestruct "H" as (l') "(Hl'&Hf&H)". iDestruct "Hl'" as %[= Hl']. subst.
         iDestruct "H" as (vl) "[Hvl H]".
         iDestruct "H" as ([|vl0[|vl1 vll]]) "(>%&>%&Hown)"; try done. subst.
diff --git a/type.v b/type.v
index af88dfbdaeeeca69f4e247a05df812ecab1e226e..6bd03ec79df71d52d31fa7b5bd6d5b3a662fe936 100644
--- a/type.v
+++ b/type.v
@@ -101,17 +101,8 @@ Section types.
   Context `{heapG Σ, lifetimeG Σ, thread_localG Σ}.
 
   Program Definition bot :=
-    {| ty_size := 0; ty_dup := true;
-       ty_own tid vl := False%I; ty_shr κ tid N l := False%I |}.
+    ty_of_st {| st_size := 0; st_own tid vl := False%I |}.
   Next Obligation. iIntros (tid vl) "[]". Qed.
-  Next Obligation.
-    iIntros (????????) "Hb Htok".
-    iVs (lft_borrow_exists with "Hb Htok") as (vl) "[Hb Htok]". set_solver.
-    iVs (lft_borrow_split with "Hb") as "[_ Hb]". set_solver.
-    iVs (lft_borrow_persistent with "Hb Htok") as "[>[] _]". set_solver.
-  Qed.
-  Next Obligation. iIntros (?????) "_ []". Qed.
-  Next Obligation. intros. iIntros "[]". Qed.
 
   Program Definition unit :=
     ty_of_st {| st_size := 0; st_own tid vl := (vl = [])%I |}.