Zulip Chat Archive

Stream: Is there code for X?

Topic: Lifting lattice structures


Eric Wieser (Jul 16 2021 at 12:23):

Do we have these?

def semilattice_sup.lift {α β : Type*} [semilattice_sup α] [has_sup β]
  (f : β  α) (hf : function.injective f)
  (hsup :  a b, f (a  b) = f a  f b) : semilattice_sup β :=
{ sup := (),
  le_sup_left := λ a b, le_sup_left.trans_eq (hsup a b).symm,
  le_sup_right := λ a b, le_sup_right.trans_eq (hsup a b).symm,
  sup_le := λ a b c hab hbc, (hsup a b).trans_le (sup_le hab hbc),
  ..partial_order.lift f hf }

def semilattice_inf.lift {α β : Type*} [semilattice_inf α] [has_inf β]
  (f : β  α) (hf : function.injective f)
  (hinf :  a b, f (a  b) = f a  f b) : semilattice_inf β :=
{ inf := (),
  inf_le_left := λ a b, (hinf a b).trans_le inf_le_left,
  inf_le_right := λ a b, (hinf a b).trans_le inf_le_right,
  le_inf := λ a b c hab hbc, (le_inf hab hbc).trans_eq (hinf b c).symm,
  ..partial_order.lift f hf }

def lattice.lift {α β : Type*} [lattice α] [has_sup β] [has_inf β]
  (f : β  α) (hf : function.injective f)
  (hsup :  a b, f (a  b) = f a  f b)
  (hinf :  a b, f (a  b) = f a  f b) : lattice β :=
{ ..semilattice_sup.lift f hf hsup,
  ..semilattice_inf.lift f hf hinf,
  ..partial_order.lift f hf }

Eric Wieser (Jul 16 2021 at 12:25):

Maybe they're hiding somewhere in monotone? Here f is monotone by definition of the partial_order we set up.


Last updated: Dec 20 2023 at 11:08 UTC