Explode command: datatypes #
This file contains datatypes used by the #explode command and their associated methods.
How to display pipes (│) for this entry in the Fitch table .
- sintro : Status
├Start intro (top-level) - intro : Status
Entry.depth*│+┌Normal intro - cintro : Status
Entry.depth*│+├Continuation intro - lam : Status
Entry.depth*│ - reg : Status
Entry.depth*│
Instances For
Equations
The row in the Fitch table.
- type : Lean.MessageData
A type of this expression as a
MessageData. Make sure to useaddMessageContext. The row number, starting from
0. This is set byEntries.add.- depth : Nat
How many
ifs (aka lambda-abstractions) this row is nested under. - status : Status
What
Statusthis entry has - this only affects how│s are displayed. - thm : Lean.MessageData
What to display in the "theorem applied" column. Make sure to use
addMessageContextif needed. Which other lines (aka rows) this row depends on.
nonemeans that the dependency has been filtered out of the table.- useAsDep : Bool
Whether or not to use this in future deps lists. Generally controlled by the
selectfunction passed toexplodeCore. Exception:∀Imay ignore this for introduced hypotheses.
Instances For
Instead of simply keeping a list of entries (List Entry), we create a datatype Entries
that allows us to compare expressions faster.
- s : Lean.ExprMap Entry
Allows us to compare
Exprs fast. Simple list of
Exprs.
Instances For
Add a pre-existing entry to the ExprMap for an additional expression.
This is used by let bindings where expr is an fvar.
Equations
- entries.addSynonym expr entry = { s := Std.HashMap.insert entries.s expr entry, l := entries.l }