This PR removes uses of `Lean.RBMap` in Lean itself. Furthermore some massaging of the import graph is done in order to avoid having `Std.Data.TreeMap.AdditionalOperations` (which is quite expensive) be the critical path for a large chunk of Lean. In particular we can build `Lean.Meta.Simp` and `Lean.Meta.Grind` without it thanks to these changes. We did previously not conduct this change as `Std.TreeMap` was not outperforming `Lean.RBMap` yet, however this has changed with the new code generator.
22 lines
807 B
Text
22 lines
807 B
Text
import Lean
|
||
|
||
inductive sublist : List α → List α → Prop
|
||
| slnil : sublist [] []
|
||
| cons l₁ l₂ a : sublist l₁ l₂ → sublist l₁ (a :: l₂)
|
||
| cons2 l₁ l₂ a : sublist l₁ l₂ → sublist (a :: l₁) (a :: l₂)
|
||
|
||
namespace Lean.PrefixTreeNode
|
||
|
||
namespace Ex1
|
||
inductive WellFormed (cmp : α → α → Ordering) : PrefixTreeNode α β cmp → Prop where
|
||
| emptyWff : WellFormed cmp empty
|
||
| insertWff {t : PrefixTreeNode α β cmp} {k : List α} {val : β} : WellFormed cmp t → WellFormed cmp (insert cmp t k val)
|
||
end Ex1
|
||
|
||
namespace Ex2
|
||
inductive WellFormed (cmp : α → α → Ordering) : PrefixTreeNode α β cmp → Prop where
|
||
| emptyWff : WellFormed cmp empty
|
||
| insertWff : WellFormed cmp t → WellFormed cmp (insert cmp t k val)
|
||
end Ex2
|
||
|
||
end Lean.PrefixTreeNode
|