Documentation

Lean.Data.KVMap

inductive Lean.DataValue :

Value stored in a key-value map.

Instances For
    @[export lean_data_value_beq]
    Equations
    • a.beqExp b = (a == b)
    Instances For
      @[export lean_mk_bool_data_value]
      Equations
      Instances For
        @[export lean_data_value_bool]
        Equations
        Instances For
          structure Lean.KVMap :

          A key-value map. We use it to represent user-selected options and Expr.mdata.

          Remark: we do not use RBMap here because we need to manipulate KVMap objects in C++ and RBMap is implemented in Lean. So, we use just a List until we can generate C++ code from Lean code.

          Instances For
            Equations
            Equations
            Equations
            Instances For
              Equations
              • { entries := m }.isEmpty = m.isEmpty
              Instances For
                Equations
                • m.size = m.entries.length
                Instances For
                  Equations
                  Instances For
                    Equations
                    • m.findD k d₀ = (m.find k).getD d₀
                    Instances For
                      Equations
                      Instances For
                        Equations
                        Instances For
                          Equations
                          • m.contains n = (m.find n).isSome
                          Instances For

                            Erase an entry from the map

                            Equations
                            Instances For
                              def Lean.KVMap.getString (m : Lean.KVMap) (k : Lean.Name) (defVal : String := "") :
                              Equations
                              Instances For
                                def Lean.KVMap.getNat (m : Lean.KVMap) (k : Lean.Name) (defVal : Nat := 0) :
                                Equations
                                Instances For
                                  def Lean.KVMap.getInt (m : Lean.KVMap) (k : Lean.Name) (defVal : Int := 0) :
                                  Equations
                                  Instances For
                                    def Lean.KVMap.getBool (m : Lean.KVMap) (k : Lean.Name) (defVal : Bool := false) :
                                    Equations
                                    Instances For
                                      Equations
                                      Instances For
                                        Equations
                                        Instances For
                                          Equations
                                          Instances For
                                            Equations
                                            Instances For
                                              Equations
                                              Instances For
                                                Equations
                                                Instances For
                                                  Equations
                                                  Instances For
                                                    Equations
                                                    Instances For

                                                      Update a String entry based on its current value.

                                                      Equations
                                                      Instances For

                                                        Update a Nat entry based on its current value.

                                                        Equations
                                                        Instances For

                                                          Update an Int entry based on its current value.

                                                          Equations
                                                          Instances For

                                                            Update a Bool entry based on its current value.

                                                            Equations
                                                            Instances For

                                                              Update a Name entry based on its current value.

                                                              Equations
                                                              Instances For

                                                                Update a Syntax entry based on its current value.

                                                                Equations
                                                                Instances For
                                                                  @[inline]
                                                                  def Lean.KVMap.forIn {δ : Type w} {m : Type w → Type w'} [Monad m] (kv : Lean.KVMap) (init : δ) (f : Lean.Name × Lean.DataValueδm (ForInStep δ)) :
                                                                  m δ
                                                                  Equations
                                                                  • kv.forIn init f = forIn kv.entries init f
                                                                  Instances For
                                                                    Equations
                                                                    • Lean.KVMap.instForInProdNameDataValue = { forIn := fun {β : Type ?u.14} [Monad m] => Lean.KVMap.forIn }
                                                                    Equations
                                                                    Instances For
                                                                      Equations
                                                                      Instances For
                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          def Lean.KVMap.eqv (m₁ m₂ : Lean.KVMap) :
                                                                          Equations
                                                                          • m₁.eqv m₂ = (m₁.subset m₂ && m₂.subset m₁)
                                                                          Instances For
                                                                            class Lean.KVMap.Value (α : Type) :
                                                                            Instances
                                                                              @[inline]
                                                                              Equations
                                                                              • m.get? k = (m.find k).bind Lean.KVMap.Value.ofDataValue?
                                                                              Instances For
                                                                                @[inline]
                                                                                def Lean.KVMap.get {α : Type} [Lean.KVMap.Value α] (m : Lean.KVMap) (k : Lean.Name) (defVal : α) :
                                                                                α
                                                                                Equations
                                                                                • m.get k defVal = (m.get? k).getD defVal
                                                                                Instances For
                                                                                  @[inline]
                                                                                  def Lean.KVMap.set {α : Type} [Lean.KVMap.Value α] (m : Lean.KVMap) (k : Lean.Name) (v : α) :
                                                                                  Equations
                                                                                  Instances For
                                                                                    @[inline]
                                                                                    def Lean.KVMap.update {α : Type} [Lean.KVMap.Value α] (m : Lean.KVMap) (k : Lean.Name) (f : Option αOption α) :
                                                                                    Equations
                                                                                    • m.update k f = match f (m.get? k) with | some a => m.set k a | none => m.erase k
                                                                                    Instances For
                                                                                      Equations
                                                                                      Equations
                                                                                      Equations
                                                                                      Equations
                                                                                      Equations
                                                                                      Equations
                                                                                      • One or more equations did not get rendered due to their size.
                                                                                      Equations
                                                                                      • One or more equations did not get rendered due to their size.