Documentation

Cslib.Data.Relation

Relations #

def Relation.upTo {α : Type u_1} (r s : ααProp) :
ααProp

The relation r 'up to' the relation s.

Equations
Instances For
    @[reducible, inline]
    abbrev Diamond {α : Sort u_1} (R : ααProp) :

    A relation has the diamond property when all reductions with a common origin are joinable

    Equations
    Instances For
      @[reducible, inline]
      abbrev Confluence {α : Type u_1} (R : ααProp) :

      A relation is confluent when its reflexive transitive closure has the diamond property.

      Equations
      Instances For
        theorem Relation.ReflTransGen.diamond_extend {α✝ : Type u_1} {R : α✝α✝Prop} {A B C : α✝} (h : Diamond R) :
        ReflTransGen R A BR A C (D : α✝), ReflTransGen R B D ReflTransGen R C D

        Extending a multistep reduction by a single step preserves multi-joinability.

        theorem Relation.ReflTransGen.diamond_confluence {α✝ : Type u_1} {R : α✝α✝Prop} (h : Diamond R) :

        The diamond property implies confluence.

        def trans_of_subrelation {α : Type u_1} (s s' r : ααProp) (hr : Transitive r) (h : ∀ (a b : α), s a br a b) (h' : ∀ (a b : α), s' a br a b) :
        Trans s s' r
        Equations
        Instances For
          def trans_of_subrelation_left {α : Type u_1} (s r : ααProp) (hr : Transitive r) (h : ∀ (a b : α), s a br a b) :
          Trans s r r
          Equations
          Instances For
            def trans_of_subrelation_right {α : Type u_1} (s r : ααProp) (hr : Transitive r) (h : ∀ (a b : α), s a br a b) :
            Trans r s r
            Equations
            Instances For
              theorem church_rosser_of_diamond {α : Type u_1} {r : ααProp} (h : ∀ (a b c : α), r a br a cRelation.Join r b c) :

              This is a straightforward but useful specialisation of a more general result in Mathlib.Logic.Relation.