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
Consider this test (remake of argWithArg from resources/samples/TypeCoercion.ts):
plus(a: number, b: number): number {
if (a + b == 10.0) {
return 1
} else {
return 0
}
}
In current state, USVM TS for path that retuns 1 will return a model containing a and b, sum of which is not 10.0. This model contradicts path constraints.
Nevertheless, correct SAT-solver expression is generated for condition a + b == 10.0: KEqExpr(KFpAddExpr(a, b), KFp64(10.0)))
Research
Functional comparison with USVM Java is difficult because the same function plus above written in Java won't produce equality operation in if statement. Instead, it will use JacoDB jvm-specific Cmpl operator in three-address code. Cmpl has different semantics from true/false equality and does not have any alternatives in TypeScript three-address code.
USVM TS machine code examination didn't yield any results since generated path constraints are correct.
Possible USVM core error, or complex symbolic expressions' misuse.
The text was updated successfully, but these errors were encountered:
Bug Description
Consider this test (remake of argWithArg from resources/samples/TypeCoercion.ts):
In current state, USVM TS for path that retuns 1 will return a model containing a and b, sum of which is not 10.0. This model contradicts path constraints.
Nevertheless, correct SAT-solver expression is generated for condition a + b == 10.0:
KEqExpr(KFpAddExpr(a, b), KFp64(10.0)))
Research
Functional comparison with USVM Java is difficult because the same function
plus
above written in Java won't produce equality operation in if statement. Instead, it will use JacoDB jvm-specific Cmpl operator in three-address code. Cmpl has different semantics from true/false equality and does not have any alternatives in TypeScript three-address code.USVM TS machine code examination didn't yield any results since generated path constraints are correct.
Possible USVM core error, or complex symbolic expressions' misuse.
The text was updated successfully, but these errors were encountered: