There is a hierarchy on the possible transformations between two problems. Most crucially, a
tactic that builds an Equivalence
should also build a Reduction
. And both equivalence and
reduction-preserving tactics should build backward maps.
This file avoid unnecessary code duplication by providing a common interface for all
transformation-preserving tactics. When building a tactic, a user must define an
EquivalenceBuilder
, a ReductionBuilder
or a RelaxationBuilder
. These builders can then be
turned into tactics using the toTactic
method.
- Solution: CvxLean.Meta.TransformationGoal
- Equivalence: CvxLean.Meta.TransformationGoal
- Reduction: CvxLean.Meta.TransformationGoal
- Relaxation: CvxLean.Meta.TransformationGoal
Instances For
Equations
- x.isTransitive = match x with | CvxLean.Meta.TransformationGoal.Solution => false | x => true
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Applies appropriate transitivity tactic to the goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a relaxation goal in the form of a RelaxationExpr
and the MVarId
of the current goal,
provide a tactic to close it.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a reduction goal in the form of a ReductionExpr
and the MVarId
of the current goal,
provide a tactic to close it.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an equivalence goal in the form of a EquivalenceExpr
and the MVarId
of the current
goal, provide a tactic to close it.
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
Wraper that works for all defined transformations, elaborating syntax into the RHS expression and a proof of the relation with the LHS. The RHS can be named so that the metavariable displayed in the infoview corresponds to a user-defined name.
Equations
- One or more equations did not get rendered due to their size.