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
{α : Type u₁}
{β : Type 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₁₁