File: .lake/packages/lean4/src/lean/Lean/Meta/DiscrTreeTypes.lean

full_name: Lean.Meta.DiscrTree.Key.star
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key.other
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key.arrow
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key.proj
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Lean.Name → Nat → Nat → Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key.lit
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Lean.Literal → Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Type

full_name: Lean.Meta.DiscrTree.instInhabitedKey
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Inhabited Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key.const
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Lean.Name → Nat → Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key.fvar
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Lean.FVarId → Nat → Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.instReprKey
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: Repr Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.instBEqKey
code: /--
Discrimination tree key. See `DiscrTree`
-/
inductive Key where
  | const : Name → Nat → Key
  | fvar  : FVarId → Nat → Key
  | lit   : Literal → Key
  | star  : Key
  | other : Key
  | arrow : Key
  | proj  : Name → Nat → Nat → Key
  deriving Inhabited, BEq, Repr
goal: BEq Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Key.hash
code: protected def Key.hash : Key → UInt64
  
goal: Lean.Meta.DiscrTree.Key → UInt64

full_name: Lean.Meta.DiscrTree.instHashableKey
code: instance : Hashable Key 
goal: Hashable Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.instToExprKey
code: instance : ToExpr Key 
goal: Lean.ToExpr Lean.Meta.DiscrTree.Key

full_name: Lean.Meta.DiscrTree.Trie.node
code: /--
Discrimination tree trie. See `DiscrTree`.
-/
inductive Trie (α : Type) where
  | node (vs : Array α) (children : Array (Key × Trie α)) : Trie α
goal: Lean.Meta.DiscrTree.Trie α

full_name: Lean.Meta.DiscrTree.Trie
code: /--
Discrimination tree trie. See `DiscrTree`.
-/
inductive Trie (α : Type) where
  | node (vs : Array α) (children : Array (Key × Trie α)) : Trie α
goal: Type

full_name: Lean.Meta.DiscrTree
code: /--
Discrimination trees. It is an index from terms to values of type `α`.
-/
structure DiscrTree (α : Type) where
  root : PersistentHashMap Key (Trie α) := {}
goal: Type

full_name: Lean.Meta.DiscrTree.root
code: /--
Discrimination trees. It is an index from terms to values of type `α`.
-/
structure DiscrTree (α : Type) where
  root : PersistentHashMap Key (Trie α) := {}
goal: Lean.PersistentHashMap Lean.Meta.DiscrTree.Key (Lean.Meta.DiscrTree.Trie α)