Documentation

Std.Data.DTreeMap.Raw.WF

Well-formedness proofs for raw dependent tree maps #

This file contains well-formedness proofs about Std.Data.DTreeMap.Raw.Basic. Most of the lemmas require TransCmp cmp for the comparison function cmp.

theorem Std.DTreeMap.Raw.WF.empty {α : Type u} {β : αType v} {cmp : ααOrdering} :
theorem Std.DTreeMap.Raw.WF.emptyc {α : Type u} {β : αType v} {cmp : ααOrdering} :
theorem Std.DTreeMap.Raw.WF.erase {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {a : α} (h : t.WF) :
(t.erase a).WF
theorem Std.DTreeMap.Raw.WF.insert {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {a : α} {b : β a} (h : t.WF) :
(t.insert a b).WF
theorem Std.DTreeMap.Raw.WF.insertIfNew {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {a : α} {b : β a} (h : t.WF) :
(t.insertIfNew a b).WF
theorem Std.DTreeMap.Raw.WF.containsThenInsert {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {a : α} {b : β a} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.containsThenInsertIfNew {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {a : α} {b : β a} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.getThenInsertIfNew? {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] [LawfulEqCmp cmp] {a : α} {b : β a} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.filter {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {f : (a : α) → β aBool} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.filterMap {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {f : (a : α) → β aOption (β a)} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.partition_fst {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {f : (a : α) → β aBool} :
theorem Std.DTreeMap.Raw.WF.partition_snd {α : Type u} {β : αType v} {cmp : ααOrdering} {t : Raw α β cmp} [TransCmp cmp] {f : (a : α) → β aBool} :
theorem Std.DTreeMap.Raw.WF.eraseMany {α : Type u} {β : αType v} {cmp : ααOrdering} [TransCmp cmp] {ρ : Type u_1} [ForIn Id ρ α] {l : ρ} {t : Raw α β cmp} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.insertMany {α : Type u} {β : αType v} {cmp : ααOrdering} [TransCmp cmp] {ρ : Type u_1} [ForIn Id ρ ((a : α) × β a)] {l : ρ} {t : Raw α β cmp} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.ofList {α : Type u} {β : αType v} {cmp : ααOrdering} [TransCmp cmp] {l : List ((a : α) × β a)} :
(Raw.ofList l cmp).WF
theorem Std.DTreeMap.Raw.WF.ofArray {α : Type u} {β : αType v} {cmp : ααOrdering} [TransCmp cmp] {a : Array ((a : α) × β a)} :
(Raw.ofArray a cmp).WF
theorem Std.DTreeMap.Raw.WF.alter {α : Type u} {β : αType v} {cmp : ααOrdering} [LawfulEqCmp cmp] {a : α} {f : Option (β a)Option (β a)} {t : Raw α β cmp} (h : t.WF) :
(t.alter a f).WF
theorem Std.DTreeMap.Raw.WF.modify {α : Type u} {β : αType v} {cmp : ααOrdering} [LawfulEqCmp cmp] {a : α} {f : β aβ a} {t : Raw α β cmp} (h : t.WF) :
(t.modify a f).WF
theorem Std.DTreeMap.Raw.WF.mergeWith {α : Type u} {β : αType v} {cmp : ααOrdering} [LawfulEqCmp cmp] {mergeFn : (a : α) → β aβ aβ a} {t₁ t₂ : Raw α β cmp} (h : t₁.WF) :
(Raw.mergeWith mergeFn t₁ t₂).WF
theorem Std.DTreeMap.Raw.WF.constGetThenInsertIfNew? {α : Type u} {cmp : ααOrdering} {β : Type v} {t : Raw α (fun (x : α) => β) cmp} [TransCmp cmp] {a : α} {b : β} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.constInsertMany {α : Type u} {cmp : ααOrdering} {β : Type v} [TransCmp cmp] {ρ : Type u_1} [ForIn Id ρ (α × β)] {l : ρ} {t : Raw α (fun (x : α) => β) cmp} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.constInsertManyIfNewUnit {α : Type u} {cmp : ααOrdering} [TransCmp cmp] {ρ : Type u_1} [ForIn Id ρ α] {l : ρ} {t : Raw α (fun (x : α) => Unit) cmp} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.constOfList {α : Type u} {cmp : ααOrdering} {β : Type v} [TransCmp cmp] {l : List (α × β)} :
theorem Std.DTreeMap.Raw.WF.constOfArray {α : Type u} {cmp : ααOrdering} {β : Type v} [TransCmp cmp] {a : Array (α × β)} :
theorem Std.DTreeMap.Raw.WF.unitOfList {α : Type u} {cmp : ααOrdering} [TransCmp cmp] {l : List α} :
theorem Std.DTreeMap.Raw.WF.unitOfArray {α : Type u} {cmp : ααOrdering} [TransCmp cmp] {a : Array α} :
theorem Std.DTreeMap.Raw.WF.constAlter {α : Type u} {cmp : ααOrdering} {β : Type v} {a : α} {f : Option βOption β} {t : Raw α (fun (x : α) => β) cmp} (h : t.WF) :
(Const.alter t a f).WF
theorem Std.DTreeMap.Raw.WF.constModify {α : Type u} {cmp : ααOrdering} {β : Type v} {a : α} {f : ββ} {t : Raw α (fun (x : α) => β) cmp} (h : t.WF) :
theorem Std.DTreeMap.Raw.WF.constMergeWith {α : Type u} {cmp : ααOrdering} {β : Type v} {mergeFn : αβββ} {t₁ t₂ : Raw α (fun (x : α) => β) cmp} (h : t₁.WF) :
(Const.mergeWith mergeFn t₁ t₂).WF