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
- Mathlib.Explode.instInhabitedStatus = { default := Mathlib.Explode.Status.sintro }
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
if
s (aka lambda-abstractions) this row is nested under. - status : Status
What
Status
this entry has - this only affects how│
s are displayed. - thm : Lean.MessageData
What to display in the "theorem applied" column. Make sure to use
addMessageContext
if needed. Which other lines (aka rows) this row depends on.
none
means 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
select
function passed toexplodeCore
. Exception:∀I
may 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
Expr
s fast. Simple list of
Expr
s.
Instances For
Equations
- Mathlib.Explode.instInhabitedEntries = { default := { s := default, l := default } }
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 }