Documentation

Init.Data.Range.Polymorphic.Map

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.

Instances For
    theorem Std.PRange.UpwardEnumerable.Map.succ?_eq_some_iff {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] (f : Map α β) {a b : α} :
    succ? a = some b succ? (f.toFun a) = some (f.toFun b)
    class Std.PRange.UpwardEnumerable.Map.PreservesLE {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [LE α] [LE β] (f : Map α β) :

    Compatibility class for Map and .

    Instances
      class Std.PRange.UpwardEnumerable.Map.PreservesLT {α : Type u_1} {β : Type u_2} [UpwardEnumerable α] [UpwardEnumerable β] [LT α] [LT β] (f : Map α β) :

      Compatibility class for Map and <.

      Instances

        Compatibility class for Map and Rxc.HasSize.

        Instances

          Compatibility class for Map and Rxo.HasSize.

          Instances

            Compatibility class for Map and Rxi.HasSize.

            Instances

              Compatibility class for Map and Least?.

              Instances