You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In this case, it inferred logic for the let but complains that what it inferred didn't match what was written for the val ...which it really shouldn't complain about. It should just use its inferred qualifier and enable the optimization.
The idea is to make it invalid for a programmer to write logic explicitly, and make it so that F* doesn't complain about missing logic annotations.
The text was updated successfully, but these errors were encountered:
This is fixed in master now. The logic qualifier is deprecated and F* has a better inference for encoding terms using the shallow encoding, adding the testcase to regressions.
The code below yields
Inconsistent qualifier annotations on foo; Expected { }, got {logic }
The qualifier. https://github.com/FStarLang/FStar/wiki/Qualifiers-for-definitions-and-declarations#logiclogic
is undocumented in the wikiAccording to @nikswamy, it serves as a way to trigger an optimization in the SMT encoding by translating a term shallowly to SMT, rather than the default deep embedding. F* usually infers when to add this qualifier.
In this case, it inferred
logic
for thelet
but complains that what it inferred didn't match what was written for theval
...which it really shouldn't complain about. It should just use its inferred qualifier and enable the optimization.The idea is to make it invalid for a programmer to write
logic
explicitly, and make it so that F* doesn't complain about missinglogic
annotations.The text was updated successfully, but these errors were encountered: