(* *)
(**************************************************************************)
-include "ground/lib/subset.ma".
-include "delayed_updating/syntax/path.ma".
-include "delayed_updating/notation/functions/pitchfork_2.ma".
-include "delayed_updating/notation/functions/uptriangle_1.ma".
+include "delayed_updating/syntax/prototerm.ma".
+include "delayed_updating/syntax/path_structure.ma".
+include "delayed_updating/notation/functions/class_t_0.ma".
(* PRETERM ******************************************************************)
-(* Note: preterms are subsets of complete paths *)
-definition preterm: Type[0] ≝ 𝒫❨path❩.
-
-definition preterm_grafted: path → preterm → preterm ≝
- λp,t,q. p;;q ϵ t.
-
-interpretation
- "grafted (preterm)"
- 'Pitchfork t p = (preterm_grafted p t).
-
-definition preterm_root: preterm → preterm ≝
- λt,q. ∃r. q;;r ϵ t.
+(* Note: a preterm is a prototerm satislying the condition below *)
+(* Note: different root paths have different structure *)
+definition structure_injective: predicate prototerm ≝
+ λt. ∀p1,p2. p1 ϵ ▵t → p2 ϵ ▵t → ⊗p1 = ⊗p2 → p1 = p2
+.
interpretation
- "root (preterm)"
- 'UpTriangle t = (preterm_root t).
-
-(* Basic constructions ******************************************************)
-
-lemma preterm_in_comp_root (p) (t):
- p ϵ t → p ϵ ▵t.
-/2 width=2 by ex_intro/
-qed.
+ "preterm (prototerm)"
+ 'ClassT = (structure_injective).