Comments (5)
Thanks for opening this issue.
Non-linear and trigonometric functions are not supported by current solvers we use, therefore, an abstraction is needed.
For example, in the generated files you sent us, you can check the file "lustrec_math.lus" that contains many abstractions of non-linear functions. You can modify them with more precise one if you are familiar with the Lustre language and re-run Kind2 or CoCoSim.
Most of the time, Kind2 model checker will return a non-sensical counter-example for properties such yours that require precise abstractions of non-linear blocks. Solvers like Z3 are more suited for logic-intensive properties and do badly in numeric-intensive ones.
from cocosim.
Got it, thanks for the clarification.
from cocosim.
Does this same consideration persist for power functions (y = x^n), where x\in Reals and y\in Nats? I'm getting similar problems even when I remove the sqrt() function (i.e., replace the y=norm(x) with y=dotproduct(x,x)). I see that lustrec_math.lus has an abstraction for power functions where x AND n are Reals, but is that necessary when n is Natural?
I can attach example files if that's helpful.
from cocosim.
Are you able to use the Simulink Power block (Math Function block with pow parameter) with machine type integers as inputs?
I get the following Simulink error when I try to do that:
Cannot set data type of input and output ports of 'pow_PP/Math Function' to uint8. The data type must be double or single when configured to be a 'pow' operation.
Currently we only support pow(x,n) where both x and n are \in Reals.
from cocosim.
No, I'm not using the Simulink Power block, I've been feeding a single variable x = [x_1, x_2, ..., x_n] into both inputs of the DotProduct block, which might be interpreted as a summation of pow(x_i, 2). I'd like to post a MWE to demonstrate the issue I'm getting with verifying over DotProduct blocks, but I'm getting different errors from (what appears to be) unrelated sources. Will post those issues as well.
from cocosim.
Related Issues (12)
- Translation error: A Lustre node with 4 parameters is called with only 3 arguments HOT 1
- Cocosim install Problem HOT 22
- Prove properties HOT 10
- “depext unmet” during installation HOT 12
- distutils not found while installing cocosim on virtual machine HOT 8
- Python3 ? HOT 4
- Problems with disabled library links for CoCoSim blocks HOT 3
- Reorder function calls in install_cocosim_lib (develop branch) HOT 1
- Calls to Z3 from MATLAB fail HOT 3
- What is "CoCoSimSpecificationLibrary/Implies" used for? HOT 2
- Does CoCoSim support Matlab 2020B HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cocosim.