(* *)
(**************************************************************************)
+include "ground/lib/subset.ma".
include "delayed_updating/syntax/path.ma".
-include "delayed_updating/notation/relations/up_down_arrow_epsilon_2.ma".
-include "delayed_updating/notation/relations/up_arrow_epsilon_2.ma".
+include "delayed_updating/notation/functions/pitchfork_2.ma".
+include "delayed_updating/notation/functions/uptriangle_1.ma".
(* PRETERM ******************************************************************)
-definition preterm: Type[0] ≝ predicate path.
+(* Note: preterms are subsets of complete paths *)
+definition preterm: Type[0] ≝ 𝒫❨path❩.
-definition preterm_in_comp: relation2 path preterm ≝
- λp,t. t p.
+definition preterm_grafted: path → preterm → preterm ≝
+ λp,t,q. p;;q ϵ t.
interpretation
- "belongs to complete (preterm)"
- 'UpDownArrowEpsilon p t = (preterm_in_comp p t).
+ "grafted (preterm)"
+ 'Pitchfork t p = (preterm_grafted p t).
-definition preterm_in_root: relation2 path preterm ≝
- λp,t. ∃q. p;;q ϵ⬦ t.
+definition preterm_root: preterm → preterm ≝
+ λt,q. ∃r. q;;r ϵ t.
interpretation
- "belongs to root (preterm)"
- 'UpArrowEpsilon p t = (preterm_in_root p t).
+ "root (preterm)"
+ 'UpTriangle t = (preterm_root t).
(* Basic constructions ******************************************************)
lemma preterm_in_comp_root (p) (t):
- p ϵ⬦ t → p ϵ▵ t.
+ p ϵ t → p ϵ ▵t.
/2 width=2 by ex_intro/
qed.