Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Usage: How to Encode Derivatives #238

Open
chelseas opened this issue Feb 10, 2021 · 3 comments
Open

Usage: How to Encode Derivatives #238

chelseas opened this issue Feb 10, 2021 · 3 comments

Comments

@chelseas
Copy link

I would like to do some proofs of the form:
f is an uninterpreted function
fp is the derivative of f -- an uninterpreted function such that fp(x) = df/dx (x)
g is some function (defined) of f and fp
And then reason about properties like the minimizer of g and such.
I am having trouble figuring out how to encode f and fp. I thought that I might be able to encode/define f and fp using the define-ode macro or the integral macro...but I have not yet come across any minimal examples that I could apply.

Is this type of relation definable in dreal? If so, can you direct me to an example that would be relevant in the codebase? I see there are a lot of examples for ode work in the dreal3 repo.

@chelseas
Copy link
Author

My attempt at a minimal example produced syntax error, unexpected symbol errors

(set-logic QF_NRA_ODE)
(declare-fun f () Real)
(declare-fun fp () Real)
(define-ode flow1 ((= d/dt[f] fp)))
(check-sat)
(get-model)
(exit)

@scungao
Copy link
Member

scungao commented Feb 10, 2021 via email

@chelseas
Copy link
Author

What about differentiation only for smooth (infinitely differentiable) functions?
What do you mean by "you need to explicitly define it with its own function form"?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants