include "delayed_updating/syntax/prototerm.ma".
include "delayed_updating/notation/functions/m_hook_1.ma".
include "delayed_updating/notation/functions/hash_1.ma".
-include "delayed_updating/notation/functions/phi_2.ma".
+include "delayed_updating/notation/functions/tau_2.ma".
include "delayed_updating/notation/functions/lamda_1.ma".
include "delayed_updating/notation/functions/at_2.ma".
interpretation
"outer variable reference by depth (prototerm)"
- 'Hash n = (prototerm_node_0 (label_d n)).
+ 'Hash k = (prototerm_node_0 (label_d k)).
interpretation
"inner variable reference by depth (prototerm)"
- 'Phi n t = (prototerm_node_1_2 (label_d n) label_m t).
+ 'Tau k t = (prototerm_node_1_2 (label_d k) label_m t).
interpretation
"name-free functional abstraction (prototerm)"
"application (prototerm)"
'At u t = (prototerm_node_2 label_S label_A u t).
-(* Basic Inversions *********************************************************)
+(* Basic constructions *******************************************************)
+lemma in_comp_iref (t) (q) (k):
+ q ϵ t → 𝗱k◗𝗺◗q ϵ 𝛕k.t.
+/2 width=3 by ex2_intro/ qed.
+
+(* Basic inversions *********************************************************)
+
+lemma in_comp_inv_iref (t) (p) (k):
+ p ϵ 𝛕k.t →
+ ∃∃q. 𝗱k◗𝗺◗q = p & q ϵ t.
+#t #p #k * #q #Hq #Hp
+/2 width=3 by ex2_intro/
+qed-.
+
+(* COMMENT
lemma prototerm_in_root_inv_lcons_oref:
∀p,l,n. l◗p ϵ ▵#n →
∧∧ 𝗱n = l & 𝐞 = p.
qed-.
lemma prototerm_in_root_inv_lcons_iref:
- â\88\80t,p,l,n. lâ\97\97p ϵ â\96µð\9d\9b\97n.t →
+ â\88\80t,p,l,n. lâ\97\97p ϵ â\96µð\9d\9b\95n.t →
∧∧ 𝗱n = l & p ϵ ▵ɱ.t.
#t #p #l #n * #q * #r #Hr
<list_append_lcons_sn #H0 destruct -H0
<list_append_lcons_sn #H0 destruct
/4 width=2 by ex_intro, or_introl, or_intror, conj/
qed-.
+*)