X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Flib%2Fbasics%2Frelations.ma;h=9da779ee45db629c6994b682d7852c011e553701;hb=3a4509b8e569181979f5b15808361c83eb1ae49a;hp=a43ed63252a37e64c768326422f7dae3147678c4;hpb=29973426e0227ee48368d1c24dc0c17bf2baef77;p=helm.git diff --git a/matita/matita/lib/basics/relations.ma b/matita/matita/lib/basics/relations.ma index a43ed6325..9da779ee4 100644 --- a/matita/matita/lib/basics/relations.ma +++ b/matita/matita/lib/basics/relations.ma @@ -10,6 +10,8 @@ V_______________________________________________________________ *) include "basics/logic.ma". +include "basics/core_notation/compose_2.ma". +include "basics/core_notation/subseteq_2.ma". (********** predicates *********) @@ -54,12 +56,16 @@ definition antisymmetric: ∀A.∀R:relation A.Prop definition singlevalued: ∀A,B. predicate (relation2 A B) ≝ λA,B,R. ∀a,b1. R a b1 → ∀b2. R a b2 → b1 = b2. -definition confluent1: ∀A. relation A → predicate A ≝ λA,R,a0. - ∀a1. R a0 a1 → ∀a2. R a0 a2 → - ∃∃a. R a1 a & R a2 a. +definition pw_confluent: ∀A. relation A → predicate A ≝ λA,R,a0. + ∀a1. R a0 a1 → ∀a2. R a0 a2 → + ∃∃a. R a1 a & R a2 a. definition confluent: ∀A. predicate (relation A) ≝ λA,R. - ∀a0. confluent1 … R a0. + ∀a0. pw_confluent … R a0. + +(* triangular confluence of two relations *) +definition Conf3: ∀A,B. relation2 A B → relation A → Prop ≝ λA,B,S,R. + ∀b,a1. S a1 b → ∀a2. R a1 a2 → S a2 b. (* Reflexive closure ************)