Module RegionAccess

Set Implicit Arguments.
Require Import DeBruijn.
Require Import MyTactics.
Require Import Types.
Require Import Programs.
Require Import ValueLists.
Require Import Typing.
Require Import Environments.
Require Import Multiplicity.
Require Import MultiplicityEnvironments.
Require Import Canonical.
Require Import PreliminaryLemmas.
Require Import Resources.
Require Import ResourcesContinued.
Require Import InversionClassification.

-------------------------------------------------------------------------

The inhabitants of a region are well-typed. These lemmas are typically used when we have both an inhabitant, of type TyAt _, and a capability for the region, of type TyRegionCap _ _ _.

Lemma ji_inversion:
  forall R vs T,
  ji R vs T ->
  forall v,
  member v vs ->
  jv R nil nil v T.
Proof.
  unfold member. induction 1; simpl. tauto. intros ? [ ? | ? ]; subst;
  eauto using j_value_resource_weakening, (@star_commutative resource).
Qed.