lean4-htt/library/Init/Lean
Leonardo de Moura e844a5be74 feat: simplify MetavarContext
Remove `AbstractMetavarContext` and `TmpMetavarContext`.
Disable `TypeUtil` until we decide this is the right design.

Using very simple approach:
- No distinction betwen temporary and regular metavariables.
- Metavariables have a `depth` Nat field.
- MetavarContext also has a `depth` field.
- We bump the `MetavarContext` depth when we create a nested problem.
  Example: Elaborator (depth = 0) -> Simplifier matcher (depth = 1) -> TC (level = 2) -> TC (level = 3) -> ...
- When MetavarContext is at depth N, isDefEq does not assign variables from depth < N.
- Metavariables from depth N+1 must be fully assigned before we return to level N.
- New design even allows us to invoke tactics from TC.

cc @dselsam
2019-11-05 18:44:33 -08:00
..
Compiler refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Elaborator refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
EqnCompiler refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Parser refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
TypeClass refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Attributes.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
AuxRecursor.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Class.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Declaration.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Default.lean feat: aux recursor extension in Lean 2019-11-02 11:24:52 -07:00
Environment.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Expr.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Format.lean fix: minor issues and add MonadTracer test 2019-10-22 14:33:07 -07:00
InductiveUtil.lean feat: use CPS 2019-11-01 16:22:55 -07:00
KVMap.lean feat: hierarchical trace kinds 2019-10-22 15:13:57 -07:00
LBool.lean feat: add LBool 2019-10-30 19:30:08 -07:00
Level.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
LocalContext.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Message.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
MetavarContext.lean feat: simplify MetavarContext 2019-11-05 18:44:33 -08:00
Modifiers.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
MonadCache.lean refactor: EState ==> EStateM 2019-11-05 09:05:10 -08:00
Name.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
NameGenerator.lean feat: TypeContext skeleton 2019-10-24 16:45:33 -07:00
Options.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Path.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Position.lean chore: use #[] instead of Array.empty 2019-10-08 16:23:06 -07:00
ProjFns.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
QuotUtil.lean feat: use CPS 2019-11-01 16:22:55 -07:00
ReducibilityAttrs.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Runtime.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
Scopes.lean refactor: default ==> arbitrary 2019-11-05 14:42:42 -08:00
SMap.lean fix: file and import names, tests and stage0 2019-10-04 17:04:02 -07:00
Syntax.lean refactor: State ==> StateM 2019-11-05 07:56:19 -08:00
ToExpr.lean chore: fix imports using script 2019-10-04 14:34:58 -07:00
Trace.lean chore: rename mmap, mfoldl, mfor ... 2019-10-27 18:19:34 -07:00
TypeUtil.lean feat: simplify MetavarContext 2019-11-05 18:44:33 -08:00
Util.lean fix: file and import names, tests and stage0 2019-10-04 17:04:02 -07:00