lean4-htt/src/Lean/Meta/GlobalInstances.lean
Leonardo de Moura c08ce69a51 refactor: break DiscrTree -> WHNF dependency
Motivation: we want to use `whnfCore` at `DiscrTree.lean`
2021-07-29 15:26:35 -07:00

25 lines
792 B
Text

/-
Copyright (c) 2021 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura
-/
import Lean.Meta.Basic
import Lean.ScopedEnvExtension
namespace Lean.Meta
builtin_initialize globalInstanceExtension : SimpleScopedEnvExtension Name (Std.PersistentHashMap Name Unit) ←
registerSimpleScopedEnvExtension {
name := `ginstanceExt
initial := {}
addEntry := fun s n => s.insert n ()
}
def addGlobalInstance (declName : Name) (attrKind : AttributeKind) : MetaM Unit := do
globalInstanceExtension.add declName attrKind
@[export lean_is_instance]
def isGlobalInstance (env : Environment) (declName : Name) : Bool :=
globalInstanceExtension.getState env |>.contains declName
end Lean.Meta