Equations
- GeachConfluent t R = ∀ {x y z : α}, R.iterate t.i x y ∧ R.iterate t.j x z → ∃ (u : α), R.iterate t.m y u ∧ R.iterate t.n z u
Instances For
theorem
GeachConfluent.serial_def
{α : Type u_1}
{rel : Rel α α}
:
Serial rel ↔ GeachConfluent { i := 0, j := 0, m := 1, n := 1 } rel
theorem
GeachConfluent.reflexive_def
{α : Type u_1}
{rel : Rel α α}
:
Reflexive rel ↔ GeachConfluent { i := 0, j := 0, m := 1, n := 0 } rel
theorem
GeachConfluent.symmetric_def
{α : Type u_1}
{rel : Rel α α}
:
Symmetric rel ↔ GeachConfluent { i := 0, j := 1, m := 0, n := 1 } rel
theorem
GeachConfluent.transitive_def
{α : Type u_1}
{rel : Rel α α}
:
Transitive rel ↔ GeachConfluent { i := 0, j := 2, m := 1, n := 0 } rel
theorem
GeachConfluent.euclidean_def
{α : Type u_1}
{rel : Rel α α}
:
Euclidean rel ↔ GeachConfluent { i := 1, j := 1, m := 0, n := 1 } rel
theorem
GeachConfluent.confluent_def
{α : Type u_1}
{rel : Rel α α}
:
Confluent rel ↔ GeachConfluent { i := 1, j := 1, m := 1, n := 1 } rel
theorem
GeachConfluent.extensive_def
{α : Type u_1}
{rel : Rel α α}
:
Coreflexive rel ↔ GeachConfluent { i := 0, j := 1, m := 0, n := 0 } rel
theorem
GeachConfluent.functional_def
{α : Type u_1}
{rel : Rel α α}
:
Functional rel ↔ GeachConfluent { i := 1, j := 1, m := 0, n := 0 } rel
theorem
GeachConfluent.dense_def
{α : Type u_1}
{rel : Rel α α}
:
Dense rel ↔ GeachConfluent { i := 0, j := 1, m := 2, n := 0 } rel
@[simp]
theorem
GeachConfluent.satisfies_eq
{α : Type u_1}
{t : GeachConfluent.Taple}
:
GeachConfluent t fun (x1 x2 : α) => x1 = x2
Equations
- MultiGeachConfluent [] rel = True
- MultiGeachConfluent [t] rel = GeachConfluent t rel
- MultiGeachConfluent (t :: ts_2) rel = (GeachConfluent t rel ∧ MultiGeachConfluent ts_2 rel)
Instances For
@[simp]
@[simp]
theorem
MultiGeachConfluent.iff_singleton
{α : Type u_1}
{rel : Rel α α}
{t : GeachConfluent.Taple}
:
MultiGeachConfluent [t] rel ↔ GeachConfluent t rel
theorem
MultiGeachConfluent.iff_cons
{α : Type u_1}
{rel : Rel α α}
{ts : List GeachConfluent.Taple}
{t : GeachConfluent.Taple}
(h : ts ≠ [])
:
MultiGeachConfluent (t :: ts) rel ↔ GeachConfluent t rel ∧ MultiGeachConfluent ts rel
@[simp]
theorem
MultiGeachConfluent.satisfies_eq
{α : Type u_1}
{ts : List GeachConfluent.Taple}
:
MultiGeachConfluent ts fun (x1 x2 : α) => x1 = x2