Skip to content
Snippets Groups Projects
Commit d809751b authored by Daniël Louwrink's avatar Daniël Louwrink Committed by Jonas Kastberg
Browse files

remove bounded quantification

parent cfd71586
No related branches found
No related tags found
1 merge request!14Derived rules about copying
......@@ -186,12 +186,13 @@ Section subtyping_rules.
iSplit; iIntros "!>" (v); iDestruct 1 as (A) "#Hv";
iExists A; repeat iModIntro; iApply "Hv".
Qed.
Lemma lty_copyable_exist {k} (Mlow Mup : lty Σ k) C :
( M, Mlow <: M -∗ M <: Mup -∗ lty_copyable (C M)) -∗ lty_copyable (lty_exist Mlow Mup C).
Lemma lty_copyable_exist (C : ltty Σ ltty Σ) :
( M, lty_copyable (C M)) -∗ lty_copyable (lty_exist C).
Proof.
iIntros "#Hle". rewrite /lty_copyable /tc_opaque.
iApply lty_le_r; last by iApply lty_le_exist_copy.
iApply lty_le_exist; try (iAssumption || iApply lty_le_refl).
iApply lty_le_exist. iApply "Hle".
Qed.
(* TODO: Try to add Löb induction in the type system, and use it to prove μX.int → X <:> μX.int → int → X *)
......
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