def
relator.lift_fun
{α : Sort u₁}
{β : Sort u₂}
{γ : Sort v₁}
{δ : Sort v₂}
(R : α → β → Prop)
(S : γ → δ → Prop)
(f : α → γ)
(g : β → δ) :
Prop
Equations
- relator.right_total R = ∀ (b : β), ∃ (a : α), R a b
Equations
- relator.left_total R = ∀ (a : α), ∃ (b : β), R a b
Equations
Equations
- relator.left_unique R = ∀ ⦃a b : α⦄ ⦃c : β⦄, R a c → R b c → a = b
Equations
- relator.right_unique R = ∀ ⦃a : α⦄ ⦃b c : β⦄, R a b → R a c → b = c
Equations
theorem
relator.right_total.rel_forall
{α : Type u₁}
{β : Type u₂}
{R : α → β → Prop}
(h : relator.right_total R) :
theorem
relator.left_total.rel_exists
{α : Type u₁}
{β : Type u₂}
{R : α → β → Prop}
(h : relator.left_total R) :
theorem
relator.bi_total.rel_forall
{α : Type u₁}
{β : Type u₂}
{R : α → β → Prop}
(h : relator.bi_total R) :
theorem
relator.bi_total.rel_exists
{α : Type u₁}
{β : Type u₂}
{R : α → β → Prop}
(h : relator.bi_total R) :
theorem
relator.left_unique_of_rel_eq
{α : Type u₁}
{β : Type u₂}
{R : α → β → Prop}
{eq' : β → β → Prop}
(he : (R ⇒ R ⇒ iff) eq eq') :
theorem
relator.left_unique.flip
{α : Type u_1}
{β : Type u_2}
{r : α → β → Prop}
(h : relator.left_unique r) :
theorem
relator.rel_eq
{α : Type u_1}
{β : Type u_2}
{r : α → β → Prop}
(hr : relator.bi_unique r) :