Documentation

Pdl.Star

theorem ReflTransGen.cases_tail_eq_neq {α : Type u_1} {x z : α} {r : ααProp} (h : Relation.ReflTransGen r x z) :
x = z x z ∃ (y : α), x y r x y Relation.ReflTransGen r y z

A version of Relation.ReflTransGen.cases_tail also giving (in)equalities.

theorem ReflTransGen.to_finitelyManySteps {α : Type u_1} {x z : α} {r : ααProp} (h : Relation.ReflTransGen r x z) :
∃ (n : ) (ys : List.Vector α n.succ), x = ys.head z = ys.last ∀ (i : Fin n), r (ys.get i.castSucc) (ys.get i.succ)

∃ x₀ ... xₙ, a = x₀ ∧ r x₀ x₁ ∧ ... ∧ xₙ = b implies ReflTransGen r a b

theorem ReflTransGen.from_finitelyManySteps {α : Type u_1} (r : ααProp) {n : } (x z : α) (ys : List.Vector α n.succ) :
(x = ys.head z = ys.last ∀ (i : Fin n), r (ys.get i.castSucc) (ys.get i.succ))Relation.ReflTransGen r x z

ReflTransGen r a b implies that ∃ x₀ ... xₙ, a = x₀ ∧ r x₀ x₁ ∧ ... ∧ xₙ = b

theorem ReflTransGen.iff_finitelyManySteps {α : Type u_1} (r : ααProp) (x z : α) :
Relation.ReflTransGen r x z ∃ (n : ) (ys : List.Vector α n.succ), x = ys.head z = ys.last ∀ (i : Fin n), r (ys.get i.castSucc) (ys.get i.succ)

ReflTransGen r a b is equivalent to ∃ x₀ ... xₙ, a = x₀ ∧ r x₀ x₁ ∧ ... ∧ r xₙ = b

theorem Relation.ReflTransGen_or_left {α : Type u_1} {r r' : ααProp} {a b : α} :
Relation.ReflTransGen r a bRelation.ReflTransGen (fun (x y : α) => r x y r' x y) a b
theorem Relation.ReflTransGen_or_right {α : Type u_1} {r r' : ααProp} {a b : α} :
Relation.ReflTransGen r a bRelation.ReflTransGen (fun (x y : α) => r' x y r x y) a b
theorem Relation.ReflTransGen_imp {α : Type u_1} {r r' : ααProp} {a b : α} :
(∀ (x y : α), r x yr' x y)Relation.ReflTransGen r a bRelation.ReflTransGen r' a b
theorem Relation.TransGen_or_left {α : Sort u_1} {r r' : ααProp} {a b : α} :
Relation.TransGen r a bRelation.TransGen (fun (x y : α) => r x y r' x y) a b
theorem Relation.TransGen_or_right {α : Sort u_1} {r r' : ααProp} {a b : α} :
Relation.TransGen r a bRelation.TransGen (fun (x y : α) => r' x y r x y) a b
theorem Relation.TransGen_imp {α : Sort u_1} {r r' : ααProp} {a b : α} :
(∀ (x y : α), r x yr' x y)Relation.TransGen r a bRelation.TransGen r' a b