(**************************************************************************)
include "basic_2/notation/relations/exclaim_5.ma".
+include "basic_2/notation/relations/exclaim_4.ma".
+include "basic_2/notation/relations/exclaimstar_4.ma".
include "basic_2/rt_computation/cpms.ma".
(* CONTEXT-SENSITIVE NATIVE VALIDITY FOR TERMS ******************************)
interpretation "context-sensitive native validity (term)"
'Exclaim a h G L T = (cnv a h G L T).
+interpretation "context-sensitive restricted native validity (term)"
+ 'Exclaim h G L T = (cnv true h G L T).
+
+interpretation "context-sensitive extended native validity (term)"
+ 'ExclaimStar h G L T = (cnv false h G L T).
+
(* Basic inversion lemmas ***************************************************)
fact cnv_inv_zero_aux (a) (h): ∀G,L,X. ⦃G, L⦄ ⊢ X ![a, h] → X = #0 →
⦃G, L⦄ ⊢ U ➡*[h] U0 & ⦃G, L⦄ ⊢ T ➡*[1, h] U0.
/2 width=3 by cnv_inv_cast_aux/ qed-.
-(* Basic_2A1: removed theorems 6:
- snv_fwd_da snv_fwd_lstas snv_cast_scpes
+(* Basic forward lemmas *****************************************************)
+
+lemma cnv_fwd_flat (a) (h) (I) (G) (L):
+ ∀V,T. ⦃G, L⦄ ⊢ ⓕ{I}V.T ![a,h] →
+ ∧∧ ⦃G, L⦄ ⊢ V ![a,h] & ⦃G, L⦄ ⊢ T ![a,h].
+#a #h * #G #L #V #T #H
+[ elim (cnv_inv_appl … H) #n #p #W #U #_ #HV #HT #_ #_
+| elim (cnv_inv_cast … H) #U #HV #HT #_ #_
+] -H /2 width=1 by conj/
+qed-.
+
+(* Basic_2A1: removed theorems 3:
shnv_cast shnv_inv_cast snv_shnv_cast
*)