- canon : Lean.Meta.Canonicalizer.State
ShareCommon
(akaHashconsing
) state.- nextThmIdx : Nat
Next index for creating auxiliary theorems.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Stores information for a node in the egraph.
Each internalized expression e
has an ENode
associated with it.
- next : Lean.Expr
Next element in the equivalence class.
- root : Lean.Expr
Root (aka canonical representative) of the equivalence class
- cgRoot : Lean.Expr
Root of the congruence class. This is field is a don't care if
e
is not an application. When
e
was added to this equivalence class because of an equalityh : e = target
, then we storetarget
here, andh
atproof?
.- flipped : Bool
Proof has been flipped.
- size : Nat
Number of elements in the equivalence class, this field is meaningless if node is not the root.
- interpreted : Bool
interpreted := true
if node should be viewed as an abstract value. - ctor : Bool
ctor := true
if the head symbol is a constructor application. - hasLambdas : Bool
hasLambdas := true
if equivalence class contains lambda expressions. - heqProofs : Bool
If
heqProofs := true
, then some proofs in the equivalence class are based on heterogeneous equality. - generation : Nat
- mt : Nat
Modification time
Instances For
Equations
- Lean.Meta.Grind.instInhabitedClause = { default := { expr := default, proof := default } }
Equations
- Lean.Meta.Grind.mkInputClause fvarId = do let __do_lift ← fvarId.getType pure { expr := __do_lift, proof := Lean.mkFVar fvarId }
Instances For
- mvarId : Lean.MVarId
- clauses : Lean.PArray Lean.Meta.Grind.Clause
- enodes : Lean.PHashMap USize Lean.Meta.Grind.ENode
- newEqs : Array Lean.Meta.Grind.NewEq
- inconsistent : Bool
inconsistent := true
ifENode
s forTrue
andFalse
are in the same equivalence class. - gmt : Nat
Goal modification time.
Instances For
Equations
- Lean.Meta.Grind.instInhabitedGoal = { default := { mvarId := default, clauses := default, enodes := default, newEqs := default, inconsistent := default, gmt := default } }
Equations
- goal.admit = goal.mvarId.admit
Instances For
Equations
Instances For
Equations
- Lean.Meta.Grind.GoalM.run goal x = StateRefT'.run x goal
Instances For
Equations
- Lean.Meta.Grind.GoalM.run' goal x = (SeqRight.seqRight x fun (x : Unit) => get).run' goal
Instances For
Returns some n
if e
has already been "internalized" into the
Otherwise, returns none
s.
Equations
- Lean.Meta.Grind.getENode? e = do let __do_lift ← get pure (Lean.PersistentHashMap.find? __do_lift.enodes (Lean.Meta.Grind.getENode?.unsafe_impl_1 e))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.