include "delayed_updating/syntax/prototerm_constructors.ma".
include "delayed_updating/syntax/prototerm_eq.ma".
-include "delayed_updating/notation/functions/class_d_phi_0.ma".
+include "delayed_updating/notation/functions/class_d_tau_0.ma".
include "ground/xoa/or_5.ma".
include "ground/xoa/ex_3_1.ma".
include "ground/xoa/ex_4_2.ma".
inductive bdd: 𝒫❨prototerm❩ ≝
| bdd_oref: ∀n. bdd (⧣n)
-| bdd_iref: â\88\80t,n. bdd t â\86\92 bdd (ð\9d\9b\97n.t)
+| bdd_iref: â\88\80t,n. bdd t â\86\92 bdd (ð\9d\9b\95n.t)
| bdd_abst: ∀t. bdd t → bdd (𝛌.t)
| bdd_appl: ∀u,t. bdd u → bdd t → bdd (@u.t)
| bdd_conv: ∀t1,t2. t1 ⇔ t2 → bdd t1 → bdd t2
interpretation
"by-depth delayed (prototerm)"
- 'ClassDPhi = (bdd).
+ 'ClassDTau = (bdd).
(* COMMENT
(* Basic inversions *********************************************************)
lemma bdd_inv_in_comp_gen:
- â\88\80t,p. t ϵ ð\9d\90\83ð\9d\9b\97 → p ϵ t →
+ â\88\80t,p. t ϵ ð\9d\90\83ð\9d\9b\95 → p ϵ t →
∨∨ ∃∃n. #n ⇔ t & 𝗱n◗𝐞 = p
- | â\88\83â\88\83u,q,n. u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ u & ð\9d\9b\97n.u ⇔ t & 𝗱n◗𝗺◗q = p
- | â\88\83â\88\83u,q. u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ u & 𝛌.u ⇔ t & 𝗟◗q = p
- | â\88\83â\88\83v,u,q. v ϵ ð\9d\90\83ð\9d\9b\97 & u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ u & @v.u ⇔ t & 𝗔◗q = p
- | â\88\83â\88\83v,u,q. v ϵ ð\9d\90\83ð\9d\9b\97 & u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ v & @v.u ⇔ t & 𝗦◗q = p
+ | â\88\83â\88\83u,q,n. u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ u & ð\9d\9b\95n.u ⇔ t & 𝗱n◗𝗺◗q = p
+ | â\88\83â\88\83u,q. u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ u & 𝛌.u ⇔ t & 𝗟◗q = p
+ | â\88\83â\88\83v,u,q. v ϵ ð\9d\90\83ð\9d\9b\95 & u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ u & @v.u ⇔ t & 𝗔◗q = p
+ | â\88\83â\88\83v,u,q. v ϵ ð\9d\90\83ð\9d\9b\95 & u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ v & @v.u ⇔ t & 𝗦◗q = p
.
#t #p #H elim H -H
[ #n * /3 width=3 by or5_intro0, ex2_intro/
qed-.
lemma bdd_inv_in_comp_d:
- â\88\80t,q,n. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗱n◗q ϵ t →
+ â\88\80t,q,n. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗱n◗q ϵ t →
∨∨ ∧∧ #n ⇔ t & 𝐞 = q
- | â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ ɱ.u & ð\9d\9b\97n.u ⇔ t
+ | â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ ɱ.u & ð\9d\9b\95n.u ⇔ t
.
#t #q #n #Ht #Hq
elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
qed-.
lemma bdd_inv_in_root_d:
- â\88\80t,q,n. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗱n◗q ϵ ▵t →
+ â\88\80t,q,n. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗱n◗q ϵ ▵t →
∨∨ ∧∧ #n ⇔ t & 𝐞 = q
- | â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ â\96µÉ±.u & ð\9d\9b\97n.u ⇔ t
+ | â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ â\96µÉ±.u & ð\9d\9b\95n.u ⇔ t
.
#t #q #n #Ht * #r #Hq
elim (bdd_inv_in_comp_d … Ht Hq) -Ht -Hq *
qed-.
lemma bdd_inv_in_comp_L:
- â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗟◗q ϵ t →
- â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ u & 𝛌.u ⇔ t
+ â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗟◗q ϵ t →
+ â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ u & 𝛌.u ⇔ t
.
#t #q #Ht #Hq
elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
qed-.
lemma bdd_inv_in_root_L:
- â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗟◗q ϵ ▵t →
- â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ ▵u & 𝛌.u ⇔ t.
+ â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗟◗q ϵ ▵t →
+ â\88\83â\88\83u. u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ ▵u & 𝛌.u ⇔ t.
#t #q #Ht * #r #Hq
elim (bdd_inv_in_comp_L … Ht Hq) -Ht -Hq
#u #Hu #Hq #H0 destruct
qed-.
lemma bdd_inv_in_comp_A:
- â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗔◗q ϵ t →
- â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\97 & u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ u & @v.u ⇔ t
+ â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗔◗q ϵ t →
+ â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\95 & u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ u & @v.u ⇔ t
.
#t #q #Ht #Hq
elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
qed-.
lemma bdd_inv_in_root_A:
- â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗔◗q ϵ ▵t →
- â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\97 & u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ ▵u & @v.u ⇔ t
+ â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗔◗q ϵ ▵t →
+ â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\95 & u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ ▵u & @v.u ⇔ t
.
#t #q #Ht * #r #Hq
elim (bdd_inv_in_comp_A … Ht Hq) -Ht -Hq
qed-.
lemma bdd_inv_in_comp_S:
- â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗦◗q ϵ t →
- â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\97 & u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ v & @v.u ⇔ t
+ â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗦◗q ϵ t →
+ â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\95 & u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ v & @v.u ⇔ t
.
#t #q #Ht #Hq
elim (bdd_inv_in_comp_gen … Ht Hq) -Ht -Hq *
qed-.
lemma bdd_inv_in_root_S:
- â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\97 → 𝗦◗q ϵ ▵t →
- â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\97 & u ϵ ð\9d\90\83ð\9d\9b\97 & q ϵ ▵v & @v.u ⇔ t
+ â\88\80t,q. t ϵ ð\9d\90\83ð\9d\9b\95 → 𝗦◗q ϵ ▵t →
+ â\88\83â\88\83v,u. v ϵ ð\9d\90\83ð\9d\9b\95 & u ϵ ð\9d\90\83ð\9d\9b\95 & q ϵ ▵v & @v.u ⇔ t
.
#t #q #Ht * #r #Hq
elim (bdd_inv_in_comp_S … Ht Hq) -Ht -Hq
(* Advanced inversions ******************************************************)
lemma bbd_mono_in_root_d:
- â\88\80l,n,p,t. t ϵ ð\9d\90\83ð\9d\9b\97 → p◖𝗱n ϵ ▵t → p◖l ϵ ▵t → 𝗱n = l.
+ â\88\80l,n,p,t. t ϵ ð\9d\90\83ð\9d\9b\95 → p◖𝗱n ϵ ▵t → p◖l ϵ ▵t → 𝗱n = l.
#l #n #p elim p -p
[ #t #Ht <list_cons_comm <list_cons_comm #Hn #Hl
elim (bdd_inv_in_root_d … Ht Hn) -Ht -Hn *