Relator for functions, pairs, sums, and lists. #
def Relator.LiftFun {α : Sort u₁} {β : Sort u₂} {γ : Sort v₁} {δ : Sort v₂} (R : α → β → Prop) (S : γ → δ → Prop) (f : α → γ) (g : β → δ) :
The binary relations R : α → β → Prop and S : γ → δ → Prop induce a binary
relation on functions LiftFun : (α → γ) → (β → δ) → Prop.
Equations
- Relator.LiftFun R S f g = ∀ ⦃a : α⦄ ⦃b : β⦄, R a b → S (f a) (g b)
Instances For
(R ⇒ S) f g means LiftFun R S f g.
Equations
- Relator.«term_⇒_» = Lean.ParserDescr.trailingNode `Relator.«term_⇒_» 40 41 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⇒ ") (Lean.ParserDescr.cat `term 40))
Instances For
A relation is "bi-total" if it is both right total and left total.
Equations
Instances For
A relation is "left unique" if every element on the right is paired with at most one element on the left.
Equations
- Relator.LeftUnique R = ∀ ⦃a b : α⦄ ⦃c : β⦄, R a c → R b c → a = b
Instances For
A relation is "right unique" if every element on the left is paired with at most one element on the right.
Equations
- Relator.RightUnique R = ∀ ⦃a : α⦄ ⦃b c : β⦄, R a b → R a c → b = c
Instances For
A relation is "bi-unique" if it is both left unique and right unique.
Equations
Instances For
theorem Relator.RightTotal.rel_forall {α : Sort u₁} {β : Sort u₂} {R : α → β → Prop} (h : RightTotal R) :
theorem Relator.LeftUnique.flip {α : Type u_1} {β : Type u_2} {r : α → β → Prop} (h : LeftUnique r) :
theorem Relator.LeftTotal.refl {α : Type u_1} {r₁₁ : α → α → Prop} (hr : ∀ (a : α), r₁₁ a a) :
LeftTotal r₁₁
theorem Relator.LeftTotal.symm {α : Type u_1} {β : Type u_2} {r₁₂ : α → β → Prop} {r₂₁ : β → α → Prop} (hr : ∀ (a : α) (b : β), r₁₂ a b → r₂₁ b a) :
LeftTotal r₁₂ → RightTotal r₂₁
theorem Relator.RightTotal.refl {α : Type u_1} {r₁₁ : α → α → Prop} (hr : ∀ (a : α), r₁₁ a a) :
RightTotal r₁₁
theorem Relator.RightTotal.symm {α : Type u_1} {β : Type u_2} {r₁₂ : α → β → Prop} {r₂₁ : β → α → Prop} (hr : ∀ (a : α) (b : β), r₁₂ a b → r₂₁ b a) :
RightTotal r₁₂ → LeftTotal r₂₁
theorem Relator.RightTotal.trans {α : Type u_1} {β : Type u_2} {γ : Type u_3} {r₁₂ : α → β → Prop} {r₂₃ : β → γ → Prop} {r₁₃ : α → γ → Prop} (hr : ∀ (a : α) (b : β) (c : γ), r₁₂ a b → r₂₃ b c → r₁₃ a c) :
RightTotal r₁₂ → RightTotal r₂₃ → RightTotal r₁₃
theorem Relator.BiTotal.refl {α : Type u_1} {r₁₁ : α → α → Prop} (hr : ∀ (a : α), r₁₁ a a) :
BiTotal r₁₁