The kinds of possible weakening suggestions.
- drop : WeakeningShape
Binder is entirely unused, and can therefore be dropped (removed).
- weaken
(target : Vertex)
: WeakeningShape
Binder can be weakened to
target. - split
(targets : Array Vertex)
: WeakeningShape
Binder can be weakened by splitting it up into
targets.
Instances For
An unverified weakening proposal. See also ConfirmedWeakening.
- binder : TargetedBinder
The binder this candidate proposes weakening.
- shape : WeakeningShape
The kind of weakening this candidate proposes.
Instances For
The Vertexes of the classes of the proposed replacements.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Names of the classes of the proposed replacements.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If c is a weakening candidate proposing to weaken a binder to a specific target t, return some t. If c proposes dropping the binder or splitting it, return none.
Equations
- c.singleWeakening? = match c.shape with | GeneralizationLinter.WeakeningShape.weaken t => some t | x => none
Instances For
Returns true iff u and v can be unified.
Note: We use syntactic equality in this process, so e.g. OrderDual ℕ does not unify with ℕ
according to us, even though Lean's actual unification mechanism would unify them, since it uses
definitional equality.
Equations
- One or more equations did not get rendered due to their size.
Instances For
#TODO
Equations
- One or more equations did not get rendered due to their size.