import Grove.Framework

/-
This file is autogenerated by grove. You can manually edit it, for example to resolve merge
conflicts, but be careful.
-/

open Grove.Framework Widget

namespace GroveStdlib.Generated.«associative-create-then-query»

def «2cb3c441-9663-4ce7-9527-0f40fc29925a:::01f88623-fa5f-4380-9772-b30f2fec5c94:::Std.DHashMap::Std.DHashMap.Raw::Std.ExtDHashMap::Std.DTreeMap::Std.DTreeMap.Raw::Std.ExtDTreeMap» : Table.Fact .subexpression .subexpression .declaration where
  widgetId := "associative-create-then-query"
  factId := "2cb3c441-9663-4ce7-9527-0f40fc29925a:::01f88623-fa5f-4380-9772-b30f2fec5c94:::Std.DHashMap::Std.DHashMap.Raw::Std.ExtDHashMap::Std.DTreeMap::Std.DTreeMap.Raw::Std.ExtDTreeMap"
  rowAssociationId := "2cb3c441-9663-4ce7-9527-0f40fc29925a"
  columnAssociationId := "01f88623-fa5f-4380-9772-b30f2fec5c94"
  selectedLayers := #["Std.DHashMap", "Std.DHashMap.Raw", "Std.ExtDHashMap", "Std.DTreeMap", "Std.DTreeMap.Raw", "Std.ExtDTreeMap", ]
  layerStates := #[
    {
      layerIdentifier := "Std.DHashMap"
      rowState := 
        
        some ⟨"Std.DHashMap.emptyWithCapacity", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DHashMap.emptyWithCapacity,
              renderedStatement := "Std.DHashMap.emptyWithCapacity.{u, v} {α : Type u} {β : α → Type v} [BEq α] [Hashable α]\n  (capacity : Nat := 8) : Std.DHashMap α β",
              isDeprecated := false })⟩
        
      columnState := 
        
        some ⟨"Std.DHashMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DHashMap.isEmpty,
              renderedStatement := "Std.DHashMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {x✝ : BEq α} {x✝¹ : Hashable α}\n  (m : Std.DHashMap α β) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
      ]
    },
    {
      layerIdentifier := "Std.DHashMap.Raw"
      rowState := 
        
        some ⟨"Std.DHashMap.Raw.emptyWithCapacity", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DHashMap.Raw.emptyWithCapacity,
              renderedStatement := "Std.DHashMap.Raw.emptyWithCapacity.{u, v} {α : Type u} {β : α → Type v} (capacity : Nat := 8) :\n  Std.DHashMap.Raw α β",
              isDeprecated := false })⟩
        
      columnState := 
        
        some ⟨"Std.DHashMap.Raw.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DHashMap.Raw.isEmpty,
              renderedStatement := "Std.DHashMap.Raw.isEmpty.{u, v} {α : Type u} {β : α → Type v} (m : Std.DHashMap.Raw α β) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
      ]
    },
    {
      layerIdentifier := "Std.ExtDHashMap"
      rowState := 
        
        some ⟨"Std.ExtDHashMap.emptyWithCapacity", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.ExtDHashMap.emptyWithCapacity,
              renderedStatement := "Std.ExtDHashMap.emptyWithCapacity.{u, v} {α : Type u} {β : α → Type v} [BEq α] [Hashable α]\n  (capacity : Nat := 8) : Std.ExtDHashMap α β",
              isDeprecated := false })⟩
        
      columnState := 
        
        some ⟨"Std.ExtDHashMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.ExtDHashMap.isEmpty,
              renderedStatement := "Std.ExtDHashMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {x✝ : BEq α} {x✝¹ : Hashable α}\n  [EquivBEq α] [LawfulHashable α] (m : Std.ExtDHashMap α β) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
      ]
    },
    {
      layerIdentifier := "Std.DTreeMap"
      rowState := 
        
        some ⟨"Std.DTreeMap.empty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DTreeMap.empty,
              renderedStatement := "Std.DTreeMap.empty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering} :\n  Std.DTreeMap α β cmp",
              isDeprecated := false })⟩
        
      columnState := 
        
        some ⟨"Std.DTreeMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DTreeMap.isEmpty,
              renderedStatement := "Std.DTreeMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering}\n  (t : Std.DTreeMap α β cmp) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
      ]
    },
    {
      layerIdentifier := "Std.DTreeMap.Raw"
      rowState := 
        
        some ⟨"Std.DTreeMap.Raw.empty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DTreeMap.Raw.empty,
              renderedStatement := "Std.DTreeMap.Raw.empty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering} :\n  Std.DTreeMap.Raw α β cmp",
              isDeprecated := false })⟩
        
      columnState := 
        
        some ⟨"Std.DTreeMap.Raw.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DTreeMap.Raw.isEmpty,
              renderedStatement := "Std.DTreeMap.Raw.isEmpty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering}\n  (t : Std.DTreeMap.Raw α β cmp) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
      ]
    },
    {
      layerIdentifier := "Std.ExtDTreeMap"
      rowState := 
        
        some ⟨"Std.ExtDTreeMap.empty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.ExtDTreeMap.empty,
              renderedStatement := "Std.ExtDTreeMap.empty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering} :\n  Std.ExtDTreeMap α β cmp",
              isDeprecated := false })⟩
        
      columnState := 
        
        some ⟨"Std.ExtDTreeMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.ExtDTreeMap.isEmpty,
              renderedStatement := "Std.ExtDTreeMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering}\n  (t : Std.ExtDTreeMap α β cmp) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
      ]
    },
  ]
  metadata := {
    status := .done
    comment := "Not necessary for `ExtDHashMap` because of simp lemma turning into varno"
  }

def «5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d:::01f88623-fa5f-4380-9772-b30f2fec5c94:::Std.DHashMap::Std.DHashMap.Raw::Std.ExtDHashMap::Std.DTreeMap::Std.DTreeMap.Raw::Std.ExtDTreeMap» : Table.Fact .subexpression .subexpression .declaration where
  widgetId := "associative-create-then-query"
  factId := "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d:::01f88623-fa5f-4380-9772-b30f2fec5c94:::Std.DHashMap::Std.DHashMap.Raw::Std.ExtDHashMap::Std.DTreeMap::Std.DTreeMap.Raw::Std.ExtDTreeMap"
  rowAssociationId := "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d"
  columnAssociationId := "01f88623-fa5f-4380-9772-b30f2fec5c94"
  selectedLayers := #["Std.DHashMap", "Std.DHashMap.Raw", "Std.ExtDHashMap", "Std.DTreeMap", "Std.DTreeMap.Raw", "Std.ExtDTreeMap", ]
  layerStates := #[
    {
      layerIdentifier := "Std.DHashMap"
      rowState := 
        
        some ⟨"app (EmptyCollection.emptyCollection) (Std.DHashMap*)", Grove.Framework.Subexpression.State.predicate
          { key := "app (EmptyCollection.emptyCollection) (Std.DHashMap*)", displayShort := "∅" }⟩
        
      columnState := 
        
        some ⟨"Std.DHashMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DHashMap.isEmpty,
              renderedStatement := "Std.DHashMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {x✝ : BEq α} {x✝¹ : Hashable α}\n  (m : Std.DHashMap α β) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
        ⟨"Std.DHashMap.isEmpty_empty", Grove.Framework.Declaration.thm
  { name := `Std.DHashMap.isEmpty_empty,
    renderedStatement := "Std.DHashMap.isEmpty_empty.{u, v} {α : Type u} {β : α → Type v} {x✝ : BEq α} {x✝¹ : Hashable α} :\n  ∅.isEmpty = true",
    isSimp := true,
    isDeprecated := false }⟩
,
      ]
    },
    {
      layerIdentifier := "Std.DHashMap.Raw"
      rowState := 
        
        some ⟨"app (EmptyCollection.emptyCollection) (Std.DHashMap.Raw*)", Grove.Framework.Subexpression.State.predicate
          { key := "app (EmptyCollection.emptyCollection) (Std.DHashMap.Raw*)", displayShort := "∅" }⟩
        
      columnState := 
        
        some ⟨"Std.DHashMap.Raw.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DHashMap.Raw.isEmpty,
              renderedStatement := "Std.DHashMap.Raw.isEmpty.{u, v} {α : Type u} {β : α → Type v} (m : Std.DHashMap.Raw α β) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
        ⟨"Std.DHashMap.Raw.isEmpty_emptyc", Grove.Framework.Declaration.thm
  { name := `Std.DHashMap.Raw.isEmpty_emptyc,
    renderedStatement := "Std.DHashMap.Raw.isEmpty_emptyc.{u_1, u_2} {α : Type u_1} {β : α → Type u_2} [BEq α] [Hashable α] :\n  ∅.isEmpty = true",
    isSimp := false,
    isDeprecated := true }⟩
,
      ]
    },
    {
      layerIdentifier := "Std.ExtDHashMap"
      rowState := 
        
        some ⟨"app (EmptyCollection.emptyCollection) (Std.ExtDHashMap*)", Grove.Framework.Subexpression.State.predicate
          { key := "app (EmptyCollection.emptyCollection) (Std.ExtDHashMap*)", displayShort := "∅" }⟩
        
      columnState := 
        
        some ⟨"Std.ExtDHashMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.ExtDHashMap.isEmpty,
              renderedStatement := "Std.ExtDHashMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {x✝ : BEq α} {x✝¹ : Hashable α}\n  [EquivBEq α] [LawfulHashable α] (m : Std.ExtDHashMap α β) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
      ]
    },
    {
      layerIdentifier := "Std.DTreeMap"
      rowState := 
        
        some ⟨"app (EmptyCollection.emptyCollection) (Std.DTreeMap*)", Grove.Framework.Subexpression.State.predicate
          { key := "app (EmptyCollection.emptyCollection) (Std.DTreeMap*)", displayShort := "∅" }⟩
        
      columnState := 
        
        some ⟨"Std.DTreeMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DTreeMap.isEmpty,
              renderedStatement := "Std.DTreeMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering}\n  (t : Std.DTreeMap α β cmp) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
        ⟨"Std.DTreeMap.isEmpty_emptyc", Grove.Framework.Declaration.thm
  { name := `Std.DTreeMap.isEmpty_emptyc,
    renderedStatement := "Std.DTreeMap.isEmpty_emptyc.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering} :\n  ∅.isEmpty = true",
    isSimp := true,
    isDeprecated := false }⟩
,
      ]
    },
    {
      layerIdentifier := "Std.DTreeMap.Raw"
      rowState := 
        
        some ⟨"app (EmptyCollection.emptyCollection) (Std.DTreeMap.Raw*)", Grove.Framework.Subexpression.State.predicate
          { key := "app (EmptyCollection.emptyCollection) (Std.DTreeMap.Raw*)", displayShort := "∅" }⟩
        
      columnState := 
        
        some ⟨"Std.DTreeMap.Raw.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.DTreeMap.Raw.isEmpty,
              renderedStatement := "Std.DTreeMap.Raw.isEmpty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering}\n  (t : Std.DTreeMap.Raw α β cmp) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
        ⟨"Std.DTreeMap.Raw.isEmpty_emptyc", Grove.Framework.Declaration.thm
  { name := `Std.DTreeMap.Raw.isEmpty_emptyc,
    renderedStatement := "Std.DTreeMap.Raw.isEmpty_emptyc.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering} :\n  ∅.isEmpty = true",
    isSimp := true,
    isDeprecated := false }⟩
,
      ]
    },
    {
      layerIdentifier := "Std.ExtDTreeMap"
      rowState := 
        
        some ⟨"app (EmptyCollection.emptyCollection) (Std.ExtDTreeMap*)", Grove.Framework.Subexpression.State.predicate
          { key := "app (EmptyCollection.emptyCollection) (Std.ExtDTreeMap*)", displayShort := "∅" }⟩
        
      columnState := 
        
        some ⟨"Std.ExtDTreeMap.isEmpty", Grove.Framework.Subexpression.State.declaration
          (Grove.Framework.Declaration.def
            { name := `Std.ExtDTreeMap.isEmpty,
              renderedStatement := "Std.ExtDTreeMap.isEmpty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering}\n  (t : Std.ExtDTreeMap α β cmp) : Bool",
              isDeprecated := false })⟩
        
      selectedCellStates := #[
        ⟨"Std.ExtDTreeMap.isEmpty_empty", Grove.Framework.Declaration.thm
  { name := `Std.ExtDTreeMap.isEmpty_empty,
    renderedStatement := "Std.ExtDTreeMap.isEmpty_empty.{u, v} {α : Type u} {β : α → Type v} {cmp : α → α → Ordering} :\n  ∅.isEmpty = true",
    isSimp := true,
    isDeprecated := false }⟩
,
      ]
    },
  ]
  metadata := {
    status := .bad
    comment := "Missing for `ExtDHashMap`"
  }

def table : Table.Data .subexpression .subexpression .declaration where
  widgetId := "associative-create-then-query"
  selectedRowAssociations := #["2cb3c441-9663-4ce7-9527-0f40fc29925a", "7743a485-024d-43b6-bd5f-ebd3182eb94d", "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d", ]
  selectedColumnAssociations := #["01f88623-fa5f-4380-9772-b30f2fec5c94", "f084f852-af71-45b6-8ab3-d251a8144f72", ]
  selectedLayers := #["Std.DHashMap", "Std.DHashMap.Raw", "Std.ExtDHashMap", "Std.DTreeMap", "Std.DTreeMap.Raw", "Std.ExtDTreeMap", ]
  selectedCellOptions := #[
    {
      layerIdentifier := "Std.DHashMap"
      rowValue := "2cb3c441-9663-4ce7-9527-0f40fc29925a"
      columnValue := "01f88623-fa5f-4380-9772-b30f2fec5c94"
      selectedCellOptions := #["Std.DHashMap.isEmpty_emptyWithCapacity", ]
    },
    {
      layerIdentifier := "Std.DHashMap.Raw"
      rowValue := "2cb3c441-9663-4ce7-9527-0f40fc29925a"
      columnValue := "01f88623-fa5f-4380-9772-b30f2fec5c94"
      selectedCellOptions := #["Std.DHashMap.Raw.isEmpty_emptyWithCapacity", ]
    },
    {
      layerIdentifier := "Std.DHashMap"
      rowValue := "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d"
      columnValue := "01f88623-fa5f-4380-9772-b30f2fec5c94"
      selectedCellOptions := #["Std.DHashMap.isEmpty_empty", ]
    },
    {
      layerIdentifier := "Std.DHashMap.Raw"
      rowValue := "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d"
      columnValue := "01f88623-fa5f-4380-9772-b30f2fec5c94"
      selectedCellOptions := #["Std.DHashMap.Raw.isEmpty_emptyc", ]
    },
    {
      layerIdentifier := "Std.DTreeMap"
      rowValue := "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d"
      columnValue := "01f88623-fa5f-4380-9772-b30f2fec5c94"
      selectedCellOptions := #["Std.DTreeMap.isEmpty_emptyc", ]
    },
    {
      layerIdentifier := "Std.DTreeMap.Raw"
      rowValue := "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d"
      columnValue := "01f88623-fa5f-4380-9772-b30f2fec5c94"
      selectedCellOptions := #["Std.DTreeMap.Raw.isEmpty_emptyc", ]
    },
    {
      layerIdentifier := "Std.ExtDTreeMap"
      rowValue := "5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d"
      columnValue := "01f88623-fa5f-4380-9772-b30f2fec5c94"
      selectedCellOptions := #["Std.ExtDTreeMap.isEmpty_empty", ]
    },
  ]
  facts := #[
    «2cb3c441-9663-4ce7-9527-0f40fc29925a:::01f88623-fa5f-4380-9772-b30f2fec5c94:::Std.DHashMap::Std.DHashMap.Raw::Std.ExtDHashMap::Std.DTreeMap::Std.DTreeMap.Raw::Std.ExtDTreeMap»,
    «5ceaa26a-d2cb-4df3-9ac8-b5c11db2ae9d:::01f88623-fa5f-4380-9772-b30f2fec5c94:::Std.DHashMap::Std.DHashMap.Raw::Std.ExtDHashMap::Std.DTreeMap::Std.DTreeMap.Raw::Std.ExtDTreeMap»,
  ]

def restoreState : RestoreStateM Unit := do
  addTable table