--- /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 46 t1 ] break term 70 t2 )"
+ non associative with precedence 70
+ for @{ 'BlackDownTriangle $t1 $t2 }.
--- /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 46 k, break term 46 p, break term 46 f ❩ )"
+ non associative with precedence 70
+ for @{ 'BlackDownTriangle $S $k $p $f }.
+
+notation > "hvbox( ▼❨ term 46 k, break term 46 p, break term 46 f ❩ )"
+ non associative with precedence 70
+ for @{ 'BlackDownTriangle ? $k $p $f }.
+
+notation > "hvbox( ▼{ term 46 S }❨ break term 46 k, break term 46 p, break term 46 f ❩ )"
+ non associative with precedence 70
+ for @{ 'BlackDownTriangle $S $k $p $f }.
"by-depth delayed (prototerm)"
'ClassDPhi = (bdd).
-(*
+(* COMMENT
(* Basic inversions *********************************************************)
]
]
qed-.
-*)
\ No newline at end of file
+*)
(* BALANCE CONDITION FOR PATH ***********************************************)
-(* This condition applies to a structural path *)
+(* Note: this condition applies to a structural path *)
inductive pbc: predicate path ≝
| pbc_empty: pbc (𝐞)
| pbc_redex: ∀b. pbc b → pbc (𝗔◗b◖𝗟)
--- /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 *)
+(* *)
+(**************************************************************************)
+
+include "delayed_updating/syntax/path_structure.ma".
+include "delayed_updating/syntax/path_inner.ma".
+
+(* STRUCTURE FOR PATH *******************************************************)
+
+(* Constructions with pic ***************************************************)
+
+lemma structure_pic (p):
+ ⊗p ϵ 𝐈.
+#p @(list_ind_rcons … p) -p
+[ <structure_empty //
+| #p * [ #n ] #IH
+ [ <structure_d_dx //
+ | <structure_m_dx //
+ | <structure_L_dx //
+ | <structure_A_dx //
+ | <structure_S_dx //
+ ]
+]
+qed.
#t #p #n * #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.