include "ground/relocation/gr_tl.ma".
-(* INCLUSION FOR GENERIC RELOCATION MAPS ***********************************************************)
+(* INCLUSION FOR GENERIC RELOCATION MAPS ************************************)
(*** sle *)
coinductive gr_sle: relation gr_map ≝
"inclusion (generic relocation maps)"
'subseteq f1 f2 = (gr_sle f1 f2).
-(* Basic properties *********************************************************)
+(* Basic constructions ******************************************************)
(*** sle_refl *)
corec lemma gr_sle_refl:
[ @(gr_sle_push … H H) | @(gr_sle_next … H H) ] -H //
qed.
-(* Basic inversion lemmas ***************************************************)
+(* Basic inversions *********************************************************)
(*** sle_inv_xp *)
lemma gr_sle_inv_push_dx:
]
qed-.
-(* Advanced inversion lemmas ************************************************)
+(* Advanced inversions ******************************************************)
(*** sle_inv_pp *)
lemma gr_sle_inv_push_bi:
/3 width=3 by ex2_intro, or_introl, or_intror/
qed-.
-(* Properties with tail *****************************************************)
+(* Constructions with gr_tl *************************************************)
(*** sle_px_tl *)
lemma gr_sle_push_sn_tl:
- â\88\80g1,g2. g1 â\8a\86 g2 â\86\92 â\88\80f1. ⫯f1 = g1 â\86\92 f1 â\8a\86 ⫱g2.
+ â\88\80g1,g2. g1 â\8a\86 g2 â\86\92 â\88\80f1. ⫯f1 = g1 â\86\92 f1 â\8a\86 â«°g2.
#g1 #g2 #H #f1 #H1
elim (gr_sle_inv_push_sn … H … H1) -H -H1 * //
qed.
(*** sle_xn_tl *)
lemma gr_sle_next_dx_tl:
- â\88\80g1,g2. g1 â\8a\86 g2 â\86\92 â\88\80f2. â\86\91f2 = g2 â\86\92 ⫱g1 ⊆ f2.
+ â\88\80g1,g2. g1 â\8a\86 g2 â\86\92 â\88\80f2. â\86\91f2 = g2 â\86\92 â«°g1 ⊆ f2.
#g1 #g2 #H #f2 #H2
elim (gr_sle_inv_next_dx … H … H2) -H -H2 * //
qed.
(*** sle_tl *)
lemma gr_sle_tl:
- â\88\80f1,f2. f1 â\8a\86 f2 â\86\92 ⫱f1 â\8a\86 ⫱f2.
+ â\88\80f1,f2. f1 â\8a\86 f2 â\86\92 â«°f1 â\8a\86 â«°f2.
#f1 elim (gr_map_split_tl f1) #H1 #f2 #H
[ lapply (gr_sle_push_sn_tl … H … H1) -H //
| elim (gr_sle_inv_next_sn … H … H1) -H //
]
qed.
-(* Inversion lemmas with tail ***********************************************)
+(* Inversions with gr_tl ****************************************************)
(*** sle_inv_tl_sn *)
lemma gr_sle_inv_tl_sn:
- â\88\80f1,f2. ⫱f1 ⊆ f2 → f1 ⊆ ↑f2.
+ â\88\80f1,f2. â«°f1 ⊆ f2 → f1 ⊆ ↑f2.
#f1 elim (gr_map_split_tl f1) #H #f2 #Hf12
/2 width=5 by gr_sle_next, gr_sle_weak/
qed-.
(*** sle_inv_tl_dx *)
lemma gr_sle_inv_tl_dx:
- â\88\80f1,f2. f1 â\8a\86 ⫱f2 → ⫯f1 ⊆ f2.
+ â\88\80f1,f2. f1 â\8a\86 â«°f2 → ⫯f1 ⊆ f2.
#f1 #f2 elim (gr_map_split_tl f2) #H #Hf12
/2 width=5 by gr_sle_push, gr_sle_weak/
qed-.