File: Mathlib/Logic/Relator.lean

full_name: Relator.LiftFun
code: /-- The binary relations `R : α → β → Prop` and `S : γ → δ → Prop` induce a binary
    relation on functions `LiftFun : (α → γ) → (β → δ) → Prop`. -/
def LiftFun (f : α → γ) (g : β → δ) : Prop 
goal: Prop

full_name: Relator._aux_Mathlib_Logic_Relator___unexpand_Relator_LiftFun_1
code: /-- `(R ⇒ S) f g` means `LiftFun R S f g`. -/
infixr:40 " ⇒ " => LiftFun
goal: Lean.PrettyPrinter.Unexpander

full_name: Relator.«_aux_Mathlib_Logic_Relator___macroRules_Relator_term_⇒__1»
code: /-- `(R ⇒ S) f g` means `LiftFun R S f g`. -/
infixr:40 " ⇒ " => LiftFun
goal: Lean.Macro

full_name: Relator.RightTotal
code: /-- A relation is "right total" if every element appears on the right. -/
def RightTotal : Prop 
goal: Prop

full_name: Relator.LeftTotal
code: /-- A relation is "left total" if every element appears on the left. -/
def LeftTotal : Prop 
goal: Prop

full_name: Relator.BiTotal
code: /-- A relation is "bi-total" if it is both right total and left total. -/
def BiTotal : Prop 
goal: Prop

full_name: Relator.LeftUnique
code: /-- A relation is "left unique" if every element on the right is paired with at
    most one element on the left. -/
def LeftUnique : Prop 
goal: Prop

full_name: Relator.RightUnique
code: /-- A relation is "right unique" if every element on the left is paired with at
    most one element on the right. -/
def RightUnique : Prop 
goal: Prop

full_name: Relator.BiUnique
code: /-- A relation is "bi-unique" if it is both left unique and right unique. -/
def BiUnique : Prop 
goal: Prop

full_name: Relator.RightTotal.rel_forall
code: lemma RightTotal.rel_forall (h : RightTotal R) :
    ((R ⇒ (· → ·)) ⇒ (· → ·)) (fun p => ∀i, p i) (fun q => ∀i, q i) 
goal: ((R ⇒ fun x x_1 => x → x_1) ⇒ fun x x_1 => x → x_1) (fun p => (i : α) → p i) fun q => ∀ (i : β), q i

full_name: Relator.LeftTotal.rel_exists
code: lemma LeftTotal.rel_exists (h : LeftTotal R) :
    ((R ⇒ (· → ·)) ⇒ (· → ·)) (fun p => ∃i, p i) (fun q => ∃i, q i) 
goal: ((R ⇒ fun x x_1 => x → x_1) ⇒ fun x x_1 => x → x_1) (fun p => ∃ i, p i) fun q => ∃ i, q i

full_name: Relator.BiTotal.rel_forall
code: lemma BiTotal.rel_forall (h : BiTotal R) :
    ((R ⇒ Iff) ⇒ Iff) (fun p => ∀i, p i) (fun q => ∀i, q i) 
goal: ((R ⇒ Iff) ⇒ Iff) (fun p => ∀ (i : α), p i) fun q => ∀ (i : β), q i

full_name: Relator.BiTotal.rel_exists
code: lemma BiTotal.rel_exists (h : BiTotal R) :
    ((R ⇒ Iff) ⇒ Iff) (fun p => ∃i, p i) (fun q => ∃i, q i) 
goal: ((R ⇒ Iff) ⇒ Iff) (fun p => ∃ i, p i) fun q => ∃ i, q i

full_name: Relator.left_unique_of_rel_eq
code: lemma left_unique_of_rel_eq {eq' : β → β → Prop} (he : (R ⇒ (R ⇒ Iff)) Eq eq') : LeftUnique R 
goal: Relator.LeftUnique R

full_name: Relator.rel_imp
code: lemma rel_imp : (Iff ⇒ (Iff ⇒ Iff)) (· → ·) (· → ·) 
goal: (Iff ⇒ Iff ⇒ Iff) (fun x x_1 => x → x_1) fun x x_1 => x → x_1

full_name: Relator.rel_not
code: lemma rel_not : (Iff ⇒ Iff) Not Not 
goal: (Iff ⇒ Iff) Not Not

full_name: Relator.bi_total_eq
code: lemma bi_total_eq {α : Type u₁} : Relator.BiTotal (@Eq α) 
goal: Relator.BiTotal Eq

full_name: Relator.LeftUnique.flip
code: lemma LeftUnique.flip (h : LeftUnique r) : RightUnique (flip r) 
goal: Relator.RightUnique (flip r)

full_name: Relator.rel_and
code: lemma rel_and : ((·↔·) ⇒ (·↔·) ⇒ (·↔·)) (·∧·) (·∧·) 
goal: ((fun x x_1 => x ↔ x_1) ⇒ (fun x x_1 => x ↔ x_1) ⇒ fun x x_1 => x ↔ x_1) (fun x x_1 => x ∧ x_1) fun x x_1 => x ∧ x_1

full_name: Relator.rel_or
code: lemma rel_or : ((·↔·) ⇒ (·↔·) ⇒ (·↔·)) (·∨·) (·∨·) 
goal: ((fun x x_1 => x ↔ x_1) ⇒ (fun x x_1 => x ↔ x_1) ⇒ fun x x_1 => x ↔ x_1) (fun x x_1 => x ∨ x_1) fun x x_1 => x ∨ x_1

full_name: Relator.rel_iff
code: lemma rel_iff : ((·↔·) ⇒ (·↔·) ⇒ (·↔·)) (·↔·) (·↔·) 
goal: ((fun x x_1 => x ↔ x_1) ⇒ (fun x x_1 => x ↔ x_1) ⇒ fun x x_1 => x ↔ x_1) (fun x x_1 => x ↔ x_1) fun x x_1 => x ↔ x_1

full_name: Relator.rel_eq
code: lemma rel_eq {r : α → β → Prop} (hr : BiUnique r) : (r ⇒ r ⇒ (·↔·)) (·=·) (·=·) 
goal: (r ⇒ r ⇒ fun x x_1 => x ↔ x_1) (fun x x_1 => x = x_1) fun x x_1 => x = x_1

full_name: Relator.LeftTotal.refl
code: protected lemma refl (hr : ∀ a : α, r₁₁ a a) :
    LeftTotal r₁₁ 
goal: Relator.LeftTotal r₁₁

full_name: Relator.LeftTotal.symm
code: protected lemma symm (hr : ∀ (a : α) (b : β), r₁₂ a b → r₂₁ b a) :
    LeftTotal r₁₂ → RightTotal r₂₁ 
goal: Relator.LeftTotal r₁₂ → Relator.RightTotal r₂₁

full_name: Relator.LeftTotal.trans
code: protected lemma trans (hr : ∀ (a : α) (b : β) (c : γ), r₁₂ a b → r₂₃ b c → r₁₃ a c) :
    LeftTotal r₁₂ → LeftTotal r₂₃ → LeftTotal r₁₃ 
goal: Relator.LeftTotal r₁₂ → Relator.LeftTotal r₂₃ → Relator.LeftTotal r₁₃

full_name: Relator.RightTotal.refl
code: protected lemma refl (hr : ∀ a : α, r₁₁ a a) : RightTotal r₁₁ 
goal: Relator.RightTotal r₁₁

full_name: Relator.RightTotal.symm
code: protected lemma symm (hr : ∀ (a : α) (b : β), r₁₂ a b → r₂₁ b a) :
    RightTotal r₁₂ → LeftTotal r₂₁ 
goal: Relator.RightTotal r₁₂ → Relator.LeftTotal r₂₁

full_name: Relator.RightTotal.trans
code: protected lemma trans (hr : ∀ (a : α) (b : β) (c : γ), r₁₂ a b → r₂₃ b c → r₁₃ a c) :
    RightTotal r₁₂ → RightTotal r₂₃ → RightTotal r₁₃ 
goal: Relator.RightTotal r₁₂ → Relator.RightTotal r₂₃ → Relator.RightTotal r₁₃

full_name: Relator.BiTotal.refl
code: protected lemma refl (hr : ∀ a : α, r₁₁ a a) :
    BiTotal r₁₁ 
goal: Relator.BiTotal r₁₁

full_name: Relator.BiTotal.symm
code: protected lemma symm (hr : ∀ (a : α) (b : β), r₁₂ a b → r₂₁ b a) :
    BiTotal r₁₂ → BiTotal r₂₁ 
goal: Relator.BiTotal r₁₂ → Relator.BiTotal r₂₁

full_name: Relator.BiTotal.trans
code: protected lemma trans (hr : ∀ (a : α) (b : β) (c : γ), r₁₂ a b → r₂₃ b c → r₁₃ a c) :
    BiTotal r₁₂ → BiTotal r₂₃ → BiTotal r₁₃ 
goal: Relator.BiTotal r₁₂ → Relator.BiTotal r₂₃ → Relator.BiTotal r₁₃