Tooling to make copies of lattice structures #
Sometimes it is useful to make a copy of a lattice structure where one replaces the data parts with provably equal definitions that have better definitional properties.
A function to create a provable equal copy of a bounded order with possibly different definitional equalities.
A function to create a provable equal copy of a lattice with possibly different definitional equalities.
Equations
- c.copy le eq_le sup eq_sup inf eq_inf = {sup := sup, le := le, lt := semilattice_sup.lt._default le, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := inf, inf_le_left := _, inf_le_right := _, le_inf := _}
A function to create a provable equal copy of a distributive lattice with possibly different definitional equalities.
Equations
- c.copy le eq_le sup eq_sup inf eq_inf = {sup := sup, le := le, lt := lattice.lt._default le, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := inf, inf_le_left := _, inf_le_right := _, le_inf := _, le_sup_inf := _}
A function to create a provable equal copy of a complete lattice with possibly different definitional equalities.
Equations
- c.copy le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf = {sup := sup, le := le, lt := lattice.lt ((complete_lattice.to_lattice α).copy le eq_le sup eq_sup inf eq_inf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := Sup, le_Sup := _, Sup_le := _, Inf := Inf, Inf_le := _, le_Inf := _, top := top, bot := bot, le_top := _, bot_le := _}
A function to create a provable equal copy of a frame with possibly different definitional equalities.
Equations
- frame.copy c le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf = {sup := sup, le := le, lt := complete_lattice.lt ((order.frame.to_complete_lattice α).copy le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := Sup, le_Sup := _, Sup_le := _, Inf := Inf, Inf_le := _, le_Inf := _, top := top, bot := bot, le_top := _, bot_le := _, inf_Sup_le_supr_inf := _}
A function to create a provable equal copy of a coframe with possibly different definitional equalities.
Equations
- coframe.copy c le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf = {sup := sup, le := le, lt := complete_lattice.lt ((order.coframe.to_complete_lattice α).copy le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := Sup, le_Sup := _, Sup_le := _, Inf := Inf, Inf_le := _, le_Inf := _, top := top, bot := bot, le_top := _, bot_le := _, infi_sup_le_sup_Inf := _}
A function to create a provable equal copy of a complete distributive lattice with possibly different definitional equalities.
Equations
- c.copy le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf = {sup := order.frame.sup (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), le := order.frame.le (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), lt := order.frame.lt (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := order.frame.inf (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), inf_le_left := _, inf_le_right := _, le_inf := _, Sup := order.frame.Sup (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), le_Sup := _, Sup_le := _, Inf := order.frame.Inf (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), Inf_le := _, le_Inf := _, top := order.frame.top (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), bot := order.frame.bot (frame.copy (complete_distrib_lattice.to_frame α) le eq_le top eq_top bot eq_bot sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf), le_top := _, bot_le := _, inf_Sup_le_supr_inf := _, infi_sup_le_sup_Inf := _}
A function to create a provable equal copy of a conditionally complete lattice with possibly different definitional equalities.
Equations
- c.copy le eq_le sup eq_sup inf eq_inf Sup eq_Sup Inf eq_Inf = {sup := sup, le := le, lt := lattice.lt._default le, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := Sup, Inf := Inf, le_cSup := _, cSup_le := _, cInf_le := _, le_cInf := _}