Library perm



Lemma apply_perm_equiv_perm p q e :
  pq FFalse pe qe.
Lemma eq_rm_perm : Proper (eq FFalse ==> eq FFalse) rm_perm.
Lemma eq_rm_perm_bis :
   e p, (eq_perm eq_perm_elim)
               zero_perm_u rm_perm (pe) pe.

Lemma zero_perm_u_apply_perm :
   p, Proper (zero_perm_u ==> (eq FFalse))
                   (rm_perm (apply_perm p)).
Lemma zero_perm_t_apply_perm :
   p, Proper (zero_perm_t ==> (eq FFalse))
                   (rm_perm (apply_perm p)).

Lemma eq_perm_apply_perm :
   p, Proper (eq_perm ==> (eq FFalse))
                   (rm_perm (apply_perm p)).
Lemma eq_perm_ω_apply_perm :
   p, Proper (eq_perm_ω ==> (eq FFalse))
                   (rm_perm (apply_perm p)).
Lemma eq_perm_elim_apply_perm :
   p, Proper (eq_perm_elim ==> (eq FFalse))
                   (rm_perm (apply_perm p)).

Lemma eq_nom_untyped_p_apply_perm :
   p, Proper (eq_nom_untyped_p ==> (eq eq_nom_untyped_np))
                   (rm_perm (apply_perm p)).
Lemma eq_nom_typed_p_apply_perm :
   p, Proper (eq_nom_typed_p ==> (eq eq_nom_typed_np))
                   (rm_perm (apply_perm p)).

Lemma apply_perm_θ_t e p :
  ( A, A e)
  eq_permeq_perm_elimeq_perm_ωzero_perm_t p e p e.
Lemma apply_perm_θ_u e p :
  untyped e
  eq_permeq_perm_elimzero_perm_u p e p e.

Lemma eq_nom_untyped_np_apply_perm :
   e f , (ut eq_nom_untyped_np) e f
                 (eq_permeq_perm_elimzero_perm_u
                  eq_nom_untyped_p) e f.

Lemma eq_nom_typed_np_apply_perm :
   e f , (eq_nom_typed_np) e f
               (eq_permeq_perm_elim eq_perm_ωzero_perm_t
                         (eq_nom_typed_p)) e f.

Lemma eq_apply_perm a b :
  ( p, Proper (a ==> eq b) (rm_perm (apply_perm p)))
  Proper (equiv_perm ==> eq a ==> eq b)
         (fun p erm_perm (p e)).

Lemma eq_rm_perm_ut_pos :
   (e : expr) (p : perm),
    untyped e positive ( p e)
    eq_perm eq_perm_elim p e rm_perm (p e).

Lemma eq_rm_perm_pos :
   (e : expr) (p : perm),
     positive ( p e)
    eq_perm_ωeq_perm eq_perm_elim p e rm_perm (p e).

Lemma eq_apply_perm_ut_pos :
   (e : expr) (p : perm),
    untyped e positive ( p e)
    eq_perm eq_perm_elim p e (p e).

Lemma eq_apply_perm_pos :
   (e : expr) (p : perm),
    positive ( p e)
    eq_perm_ωeq_perm eq_perm_elim p e (p e).

Lemma eq_nom_untyped_np_rm_perm_pos :
   e f : expr, str_positive e str_positive f
                    (ut eq_nom_untyped_np) e f
                    eq_perm eq_perm_elim
                             eq_nom_untyped_p e f.