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 : StatusEntry.depth*│+┌Normal intro
- cintro : StatusEntry.depth*│+├Continuation intro
- lam : StatusEntry.depth*│
- reg : StatusEntry.depth*│
Instances For
Equations
The row in the Fitch table.
- type : Lean.MessageDataA type of this expression as a MessageData. Make sure to useaddMessageContext.
- The row number, starting from - 0. This is set by- Entries.add.
- depth : NatHow many ifs (aka lambda-abstractions) this row is nested under.
- status : StatusWhat Statusthis entry has - this only affects how│s are displayed.
- thm : Lean.MessageDataWhat 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 : BoolWhether 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 EntryAllows us to compare Exprs fast.
- Simple list of - Exprs.
Instances For
Instances For
Equations
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 }