Mappings between UpwardEnumerable types #
In this file we build machinery for pulling back lawfulness properties for UpwardEnumerable along
injective functions that commute with the relevant operations.
structure Std.PRange.UpwardEnumerable.Map (α : Type u) (β : Type v) [UpwardEnumerable α] [UpwardEnumerable β] :
Type (max u v)
An injective mapping between two types implementing UpwardEnumerable that commutes with succ?
and succMany?.
Having such a mapping means that all of the Prop-valued lawfulness classes around
UpwardEnumerable can be pulled back.
- toFun : α → β
- injective : Function.Injective self.toFun
Instances For
theorem Std.PRange.UpwardEnumerable.Map.succ?_eq_none_iff {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] (f : Map α β) {a : α} :
theorem Std.PRange.UpwardEnumerable.Map.le_iff {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] (f : Map α β) {a b : α} :
theorem Std.PRange.UpwardEnumerable.Map.lt_iff {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] (f : Map α β) {a b : α} :
theorem Std.PRange.UpwardEnumerable.Map.succ?_toFun' {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] (f : Map α β) :
class Std.PRange.UpwardEnumerable.Map.PreservesRxcSize {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [Rxc.HasSize α] [Rxc.HasSize β] (f : Map α β) :
Compatibility class for Map and Rxc.HasSize.
Instances
class Std.PRange.UpwardEnumerable.Map.PreservesRxoSize {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [Rxo.HasSize α] [Rxo.HasSize β] (f : Map α β) :
Compatibility class for Map and Rxo.HasSize.
Instances
class Std.PRange.UpwardEnumerable.Map.PreservesRxiSize {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [Rxi.HasSize α] [Rxi.HasSize β] (f : Map α β) :
Compatibility class for Map and Rxi.HasSize.
Instances
class Std.PRange.UpwardEnumerable.Map.PreservesLeast? {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [Least? α] [Least? β] (f : Map α β) :
Compatibility class for Map and Least?.
Instances
theorem Std.PRange.LawfulUpwardEnumerable.ofMap {α : Type u_2} {β : Type u_1} [UpwardEnumerable α] [UpwardEnumerable β] [LawfulUpwardEnumerable β] (f : UpwardEnumerable.Map α β) :
instance Std.PRange.instPreservesLTOfLawfulOrderLTOfPreservesLE {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [LE α] [LT α] [LawfulOrderLT α] [LE β] [LT β] [LawfulOrderLT β] (f : UpwardEnumerable.Map α β) [f.PreservesLE] :
theorem Std.PRange.LawfulUpwardEnumerableLE.ofMap {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [LE α] [LE β] [LawfulUpwardEnumerableLE β] (f : UpwardEnumerable.Map α β) [f.PreservesLE] :
theorem Std.PRange.LawfulUpwardEnumerableLT.ofMap {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [LT α] [LT β] [LawfulUpwardEnumerableLT β] (f : UpwardEnumerable.Map α β) [f.PreservesLT] :
theorem Std.PRange.LawfulUpwardEnumerableLeast?.ofMap {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [Least? α] [Least? β] [LawfulUpwardEnumerableLeast? β] (f : UpwardEnumerable.Map α β) [f.PreservesLeast?] :
theorem Std.Rxc.LawfulHasSize.ofMap {α : Type u_1} {β : Type u_2} [PRange.UpwardEnumerable α] [PRange.UpwardEnumerable β] [LE α] [LE β] [HasSize α] [HasSize β] [LawfulHasSize β] (f : PRange.UpwardEnumerable.Map α β) [f.PreservesLE] [f.PreservesRxcSize] :
theorem Std.Rxo.LawfulHasSize.ofMap {α : Type u_1} {β : Type u_2} [PRange.UpwardEnumerable α] [PRange.UpwardEnumerable β] [LT α] [LT β] [HasSize α] [HasSize β] [LawfulHasSize β] (f : PRange.UpwardEnumerable.Map α β) [f.PreservesLT] [f.PreservesRxoSize] :
theorem Std.Rxi.LawfulHasSize.ofMap {α : Type u_1} {β : Type u_2} [PRange.UpwardEnumerable α] [PRange.UpwardEnumerable β] [HasSize α] [HasSize β] [LawfulHasSize β] (f : PRange.UpwardEnumerable.Map α β) [f.PreservesRxiSize] :
theorem Std.Rxc.IsAlwaysFinite.ofMap {α : Type u_1} {β : Type u_2} [PRange.UpwardEnumerable α] [PRange.UpwardEnumerable β] [LE α] [LE β] [IsAlwaysFinite β] (f : PRange.UpwardEnumerable.Map α β) [f.PreservesLE] :
theorem Std.Rxo.IsAlwaysFinite.ofMap {α : Type u_1} {β : Type u_2} [PRange.UpwardEnumerable α] [PRange.UpwardEnumerable β] [LT α] [LT β] [IsAlwaysFinite β] (f : PRange.UpwardEnumerable.Map α β) [f.PreservesLT] :
theorem Std.Rxi.IsAlwaysFinite.ofMap {α : Type u_2} {β : Type u_1} [PRange.UpwardEnumerable α] [PRange.UpwardEnumerable β] [IsAlwaysFinite β] (f : PRange.UpwardEnumerable.Map α β) :