Documentation

Foundation.Vorspiel.RelItr

def Rel.iterate {α : Type u_1} (R : Rel α α) :
ααProp
Equations
  • R.iterate 0 = fun (x1 x2 : α) => x1 = x2
  • R.iterate n.succ = fun (x y : α) => ∃ (z : α), R x z R.iterate n z y
Instances For
    @[simp]
    theorem Rel.iterate.iff_zero {α : Type u_1} {R : Rel α α} {x y : α} :
    R.iterate 0 x y x = y
    @[simp]
    theorem Rel.iterate.iff_succ {α : Type u_1} {R : Rel α α} {n : } {x y : α} :
    R.iterate (n + 1) x y ∃ (z : α), R x z R.iterate n z y
    @[simp]
    theorem Rel.iterate.eq {α : Type u_1} {n : } :
    Rel.iterate (fun (x1 x2 : α) => x1 = x2) n = fun (x1 x2 : α) => x1 = x2
    theorem Rel.iterate.forward {α : Type u_1} {R : Rel α α} {n : } {x y : α} :
    R.iterate (n + 1) x y ∃ (z : α), R.iterate n x z R z y
    theorem Rel.iterate.true_any {n : } {α✝ : Type u_1} {x y : α✝} (h : x = y) :
    Rel.iterate (fun (x x : α✝) => True) n x y
    theorem Rel.iterate.congr {α : Type u_1} {R : Rel α α} {n m : } {x y : α} (h : R.iterate n x y) (he : n = m) :
    R.iterate m x y
    theorem Rel.iterate.comp {α : Type u_1} {R : Rel α α} {n m : } {x y : α} :
    (∃ (z : α), R.iterate n x z R.iterate m z y) R.iterate (n + m) x y