(* NOTATION FOR DELAYED UPDATING ********************************************)
-notation "hvbox( ๐ฑโจ break term 46 a โฉ )"
+notation "hvbox( ๐ฑ break term 70 a )"
non associative with precedence 70
for @{ 'NodeLabelD $a }.
--- /dev/null
+(**************************************************************************)
+(* ___ *)
+(* ||M|| *)
+(* ||A|| A project by Andrea Asperti *)
+(* ||T|| *)
+(* ||I|| Developers: *)
+(* ||T|| The HELM team. *)
+(* ||A|| http://helm.cs.unibo.it *)
+(* \ / *)
+(* \ / This file is distributed under the terms of the *)
+(* v GNU General Public License Version 2 *)
+(* *)
+(**************************************************************************)
+
+(* NOTATION FOR DELAYED UPDATING ********************************************)
+
+notation "hvbox( ๊ term 70 x )"
+ non associative with precedence 45
+ for @{ 'PredicatePTail $x }.
(* NOTATION FOR DELAYED UPDATING ********************************************)
-notation "hvbox( โ term 46 p )"
+notation "hvbox( โ term 70 p )"
non associative with precedence 45
for @{ 'PredicateSquareCap $p }.
inductive dfr (p) (q) (t): predicate preterm โ
| dfr_beta (b):
- let r โ pโ๐โbโ๐โqโ๐ฑโจโโqโโฉ in
- r ฯต t โ โโb โ dfr p q t (t[โrโtโ(pโ๐ฆ)])
+ let r โ pโ๐โbโ๐โqโ๐ฑ(โโqโ) in
+ r ฯต t โ โ(โb) โ dfr p q t (t[โrโtโ(pโ๐ฆ)])
.
interpretation
inductive ifr (p) (q) (t): predicate preterm โ
| ifr_beta (b):
let r โ pโ๐โbโ๐โq in
- rโ๐ฑโจโโqโโฉ ฯต t โ โโb โ ifr p q t (t[โrโโ[๐ฎโจโโqโโฉ]tโ(pโ๐ฆ)])
+ rโ๐ฑ(โโqโ) ฯต t โ โ(โb) โ ifr p q t (t[โrโโ[๐ฎโจโโqโโฉ]tโ(pโ๐ฆ)])
.
interpretation
match l with
[ label_node_d n โ
match q with
- [ list_empty โ lift_gen (A) (ฮปp. k (๐ฑโจf@โจnโฉโฉโp)) q (fโ๐ฎโจnโฉ)
+ [ list_empty โ lift_gen (A) (ฮปp. k (๐ฑ(f@โจnโฉ)โp)) q (fโ๐ฎโจnโฉ)
| list_lcons _ _ โ lift_gen (A) k q (fโ๐ฎโจnโฉ)
]
| label_edge_L โ lift_gen (A) (ฮปp. k (๐โp)) q (โซฏf)
// qed.
lemma lift_d_empty_sn (A) (k) (n) (f):
- โโจ(ฮปp. k (๐ฑโจf@โจnโฉโฉโp)), ๐, fโ๐ฎโจninj nโฉโฉ = โ{A}โจk, ๐ฑโจnโฉโ๐, fโฉ.
+ โโจ(ฮปp. k (๐ฑ(f@โจnโฉ)โp)), ๐, fโ๐ฎโจninj nโฉโฉ = โ{A}โจk, ๐ฑnโ๐, fโฉ.
// qed.
lemma lift_d_lcons_sn (A) (k) (p) (l) (n) (f):
- โโจk, lโp, fโ๐ฎโจninj nโฉโฉ = โ{A}โจk, ๐ฑโจnโฉโlโp, fโฉ.
+ โโจk, lโp, fโ๐ฎโจninj nโฉโฉ = โ{A}โจk, ๐ฑnโlโp, fโฉ.
// qed.
lemma lift_L_sn (A) (k) (p) (f):
(* Basic constructions with proj_path ***************************************)
lemma lift_path_d_empty_sn (f) (n):
- ๐ฑโจf@โจnโฉโฉโ๐ = โ[f](๐ฑโจnโฉโ๐).
+ ๐ฑ(f@โจnโฉ)โ๐ = โ[f](๐ฑnโ๐).
// qed.
lemma lift_path_d_lcons_sn (f) (p) (l) (n):
- โ[fโ๐ฎโจninj nโฉ](lโp) = โ[f](๐ฑโจnโฉโlโp).
+ โ[fโ๐ฎโจninj nโฉ](lโp) = โ[f](๐ฑnโlโp).
// qed.
(* Basic constructions with proj_rmap ***************************************)
lemma lift_rmap_d_sn (f) (p) (n):
- โ[p](fโ๐ฎโจninj nโฉ) = โ[๐ฑโจnโฉโp]f.
+ โ[p](fโ๐ฎโจninj nโฉ) = โ[๐ฑnโp]f.
#f * // qed.
lemma lift_rmap_L_sn (f) (p):
lemma path_ind_lift (Q:predicate โฆ):
Q (๐) โ
- (โn. Q (๐) โ Q (๐ฑโจnโฉโ๐)) โ
- (โn,l,p. Q (lโp) โ Q (๐ฑโจnโฉโlโp)) โ
+ (โn. Q (๐) โ Q (๐ฑnโ๐)) โ
+ (โn,l,p. Q (lโp) โ Q (๐ฑnโlโp)) โ
(โp. Q p โ Q (๐โp)) โ
(โp. Q p โ Q (๐โp)) โ
(โp. Q p โ Q (๐ฆโp)) โ
(* Constructions with structure ********************************************)
lemma lift_d_empty_dx (n) (p) (f):
- (โp)โ๐ฑโจ(โ[p]f)@โจnโฉโฉ = โ[f](pโ๐ฑโจnโฉ).
+ (โp)โ๐ฑ((โ[p]f)@โจnโฉ) = โ[f](pโ๐ฑn).
#n #p @(path_ind_lift โฆ p) -p // [ #m #l #p |*: #p ] #IH #f
[ <lift_rmap_d_sn <lift_path_d_lcons_sn //
| <lift_rmap_L_sn <lift_path_L_sn <IH //
lemma bdd_inv_in_comp_gen:
โt,p. t ฯต ๐๐ โ p ฯต t โ
- โจโจ โโn. #n โ t & ๐ฑโจnโฉโ๐ = p
- | โโu,q,n. u ฯต ๐๐ & q ฯต u & ๐n.u โ t & ๐ฑโจnโฉโq = p
+ โจโจ โโn. #n โ t & ๐ฑnโ๐ = p
+ | โโu,q,n. u ฯต ๐๐ & q ฯต u & ๐n.u โ t & ๐ฑnโq = p
| โโu,q. u ฯต ๐๐ & q ฯต u & ๐.u โ t & ๐โq = p
| โโv,u,q. v ฯต ๐๐ & u ฯต ๐๐ & q ฯต u & @v.u โ t & ๐โq = p
| โโv,u,q. v ฯต ๐๐ & u ฯต ๐๐ & q ฯต v & @v.u โ t & ๐ฆโq = p
qed-.
lemma bdd_inv_in_comp_d:
- โt,q,n. t ฯต ๐๐ โ ๐ฑโจnโฉโq ฯต t โ
+ โt,q,n. t ฯต ๐๐ โ ๐ฑnโq ฯต t โ
โจโจ โงโง #n โ t & ๐ = q
| โโu. u ฯต ๐๐ & q ฯต u & ๐n.u โ t
.
qed-.
lemma bdd_inv_in_root_d:
- โt,q,n. t ฯต ๐๐ โ ๐ฑโจnโฉโq ฯต โตt โ
+ โt,q,n. t ฯต ๐๐ โ ๐ฑnโq ฯต โตt โ
โจโจ โงโง #n โ t & ๐ = q
| โโu. u ฯต ๐๐ & q ฯต โตu & ๐n.u โ t
.
(* Advanced inversions ******************************************************)
lemma bbd_mono_in_root_d:
- โl,n,p,t. t ฯต ๐๐ โ pโ๐ฑโจnโฉ ฯต โตt โ pโl ฯต โตt โ ๐ฑโจnโฉ = l.
+ โl,n,p,t. t ฯต ๐๐ โ 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 *
lemma depth_empty: ๐ = โ๐โ.
// qed.
-lemma depth_d (q) (n): โqโ = โ๐ฑโจnโฉโqโ.
+lemma depth_d (q) (n): โqโ = โ๐ฑnโqโ.
// qed.
lemma depth_L (q): โโqโ = โ๐โqโ.
// qed.
lemma structure_d_sn (p) (n):
- โp = โ(๐ฑโจnโฉโp).
+ โp = โ(๐ฑnโp).
// qed.
lemma structure_L_sn (p):
(* Constructions with list_rcons ********************************************)
lemma structure_d_dx (p) (n):
- โp = โ(pโ๐ฑโจnโฉ).
+ โp = โ(pโ๐ฑn).
#p #n <structure_append //
qed.
lemma preterm_in_root_inv_lcons_oref:
โp,l,n. lโp ฯต โต#n โ
- โงโง ๐ฑโจnโฉ = l & ๐ = p.
+ โงโง ๐ฑn = l & ๐ = p.
#p #l #n * #q
<list_append_lcons_sn #H0 destruct -H0
elim (eq_inv_list_empty_append โฆ e0) -e0 #H0 #_
lemma preterm_in_root_inv_lcons_iref:
โt,p,l,n. lโp ฯต โต๐n.t โ
- โงโง ๐ฑโจnโฉ = l & p ฯต โตt.
+ โงโง ๐ฑn = l & p ฯต โตt.
#t #p #l #n * #q
<list_append_lcons_sn * #r #Hr #H0 destruct
/3 width=2 by ex_intro, conj/
["o"; "ฮธ"; "ฯ"; "๐ "; "โ"; "โ"; "รธ"; "โ"; "โ"; "โ"; "โ"; "๐จ"; "๐"; "โ"; ] ;
["O"; "ฮ"; "๐"; "๐"; "๐ฏ"; "๐น"; "โ"; ] ;
["p"; "ฯ"; "๐ก"; "๐ฉ"; "๐"; "โ"; ] ;
- ["P"; "ฮ "; "โ"; "โ"; "๐"; "๐ท"; "โ
"; "๐ซ"; ] ;
+ ["P"; "ฮ "; "โ"; "โ"; "๐"; "๐ท"; "โ
"; "๐ซ"; "๊"; ] ;
["q"; "๐ข"; "๐ช"; "โ "; ] ;
["Q"; "โ"; "๐"; "โ"; ] ;
["r"; "ฯ"; "ฯฑ"; "๐ฃ"; "๐ซ"; "๐"; "๐ "; "โก"; ] ;