Introduce ScalarTerm struct to support Add<Scalar> for ScalarVar and Add<GroupVar> for Term #53
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is an approach to supporting adding and subtracting terms that do not include a private scalar (e.g. "5" in
(x + Scalar::from(5u64)) * g).As part of supporting this, the
ScalarTermenum is added, which can be aVarorUnit, where unit represents the constantScalar::ONEin the proof system.Supporting this in the
LinearRelationwhile being able to map the relation to a standardized form from serialization to Fiat-Shamir posed some difficulty. This PR includes one possible implementation.Additionally, in the course of writing this PR, I realized that the
LinearRelation::labelfunction onmainright now is incorrect, in that if there are any terms with non-unit weight, their value will not be included in the serialization. This PR fixes this issue.